Jak przekonwertować ikonę na png z przezroczystością alfa w delphi?

Poniższy kod wyodrębni ikonę z pliku i przekonwertuje ją na png, ale bez przezroczystości alfa?

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;

questionAnswers(3)

yourAnswerToTheQuestion