下面的代码会从文件中提取图标并将其转换为png但没有Alpha透明度?
var
IconIndex : word;
icon:TIcon;
png:TPngImage;
bmp:TBitmap;
begin
IconIndex := 0;
icon := TIcon.Create;
icon.Handle := ExtractAssociatedIcon(hInstance,pChar(Edit1.Text), IconIndex) ;
bmp:= TBitmap.Create;
bmp.LoadFromFile('blank.bmp');
DrawIcon(bmp.Canvas.Handle, 0, 0, icon.Handle) ;
png := TPngImage.Create();
png.Assign(bmp);
png.SaveToFile('icon.png');
end;
答案 0 :(得分:11)
PngComponents包含一个单位PngFunctions.pas,你可以看看
procedure ConvertToPNG(Source: TGraphic; out Dest: TPngImage);
在那里你可以找到将TIcon转换为TPngImage的代码 - 或者只是使用该程序。
答案 1 :(得分:0)
我在谷歌搜索后发现了一些像PNG Delphi和Delphi PNG and MNG libraries这样的库。
答案 2 :(得分:-1)
虽然TPngImage is no longer open source,如果我快速查看我在这里躺着的旧副本,TPngImage.Assign只会检查源是否是TPngImage,如果没有,则让'default'分配它是否正常工作对于TBitmap或TGraphic,这很可能会在画布上使用普通绘图来抛弃透明度。
这似乎要发布在Delphi QC
上