7
votes

Comment convertir l'icône en PNG avec une transparence alpha dans Delphi?

Le code ci-dessous extraire l'icône du fichier et le convertira en PNG mais sans transparence 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 commentaires

3 Réponses :


0
votes

J'ai trouvé des bibliothèques comme PNG Delphi et Delphi PNG et MNG Bibliothèques après googling.


1 commentaires

Sourceforge n'héberge plus PNG DELPHI Project DUE CopyRASTY Problèmes. Le téléchargement est complètement légitime.



-1
votes

Bien que TPngImage n'est plus open source , si je prends Un aspect rapide dans une ancienne copie, j'ai menté ici, Tpngimage.Assign uniquement uniquement si la source est un TPngImage, et si elle ne permet pas à "défaut" assigner faire son travail, et pour TBITMAP ou TGRAPHIC, cela utilisera probablement un Dessine latéralement sur la toile qui lance la transparence.

Ceci ressemble à quelque chose à poster sur delphi QC


1 commentaires

Hodges nous a mal informés au nom de son employeur. À moins que votre loi locale sur le droit d'auteur applique un effet rétroactif, des versions plus anciennes du code PNG Delphi sont toujours couvertes par des termes de licence plus anciens exclusifs et assez restrictifs.



13
votes

the pngComponents contient une unité pngfonctions.PAS, où vous pourrez consulter

Procédure Converttopng (Source: Tgraphic; Out Dest: Tpngimage);

là, vous pouvez trouver le code pour convertir un TICON en un TPngImage - ou simplement utiliser cette procédure.


4 commentaires

Salut Uwe! J'essaie de convertir une icône de taille 256x256 avec convertopng () et je reçois un "Ressources Système" / "Systemressourcen erschöpft". Tout indice ce qui ne va pas ici?


@Stefan, pouvez-vous produire un étui de test reproductible à bitbucket.org/uweraabe/pngComponents , s'il vous plaît?


Numéro n ° 6 créé avec témoignage attaché.


@Stefan: Bug connu dans vcl.graphics.pas: Quality.embarcadero.com/browse/rsp- 21318