《代码已经按照楼下各位的建议》改了,还是无法解决。代码更新了。
本人在利用delphi开发过程中,使用了第三方控件imageEN和AlphaControls。目前想在加载的图片中进行标注,部分功能已经实现,但是无法解决png图像作为图标的问题。图标PNG格式存储在AlphaControls组件下的sAlphaImageList中。代码如下,请高人纠错,谢谢。
procedure ConvertImageListImageToGraphic(sAlphaImageList: TsAlphaImageList;
Index: Integer; out PNGImage: TPngImage);
var
Bitmap: TBitMap;
begin
Bitmap := TBitMap.Create;
try
// 获取图片列表中指定索引的位图
sAlphaImageList.GetBitmap(index,Bitmap);
pngImage:=TpngImage.Create;
pngImage.Assign(Bitmap);
finally
Bitmap.Free;
end;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
var
Graphic: TpngImage;
try
ConvertImageListImageToGraphic(sAlphaImageList1, 2, Graphic);
with ImageEnView1 do
begin
LayersAdd(ielkImage,ClientPos.X,ClientPos.Y,Graphic.Width ,Graphic.Height);
CurrentLayer.Bitmap.Canvas.Draw(0,0,Graphic);
CurrentLayer.Bitmap.SetTransparentColors(CreateRGB(125, 125, 125), CreateRGB(255, 255, 255),0);
//CurrentLayer.Fillcolor:= clNone; //背景填充色为空
CurrentLayer.Update;
CurrentLayer.Locked:= False;
end;
finally
Graphic.Free;
end;
end;