如何在delphi中将图标转换为具有alpha透明度的png?

isa*_*isa 4 delphi

下面的代码将从文件中提取图标并将其转换为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;
Run Code Online (Sandbox Code Playgroud)

Uwe*_*abe 11

PngComponents含有单元PngFunctions.pas,在那里你可以看看

procedure ConvertToPNG(Source: TGraphic; out Dest: TPngImage);

在那里,您可以找到将TIcon转换为TPngImage的代码 - 或者只是使用该过程.