Bonjour,
Je cherche à fusionner des images PNG (avec transparence) pour créer dynamiquement des boutons avec effets.
Pour l'instant voici les infos que j'ai pu trouver :
* Un projet de Andnotor qui fusionne des BMP
http://www.developpez.net/forums/.../superposer-images-format-bmp-jpg-png/#post3916789
* Une procédure de fusion de PNG par retouche de la couche alpha de l'image.
http://stackoverflow.com/questions/1...e-on-other-png
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 procedure DrawPngWithAlpha(Src, Dest: TPNGObject; const R: TRect); var X, Y: Integer; Alpha: PByte; begin Src.Draw(Dest.Canvas, R); // I have no idea why standard implementation of TPNGObject.Draw doesn't apply transparency. for Y := R.Top to R.Bottom - 1 do for X := R.Left to R.Right - 1 do begin Alpha := @Dest.AlphaScanline[Y]^[X]; Alpha^ := Min(255, Alpha^ + Src.AlphaScanline[Y - R.Top]^[X - R.Left]); end; end;
Le problème avec cette procédure est que mes transparences se dégradent lors de la superposition :
A gauche les couches (mal) fusionnées et à droite 3 TImage et un panel pour appliquer la couleur désirée...
* J'ai également été voir du coté de la librairie Vampyre Imaging mais je n'ai pas trouvé de solution avec pour l'instant.
Une idée ?
Merci.
Partager