LIbrairie GD/ Superposition PNG > Blanc

guitarsora -  
 guitarsora -
Bonjour,

Voilà mon problème : je suis en train de faire un générateur de signatures pour un site avec un cadre et j'ai déjà pas mal galéré sur certains points mais là je seche !
Donc voilà j'utilise la librairie GD (normal pour les images en php), j'ai édité mon image de départ pour la découper à la bonne taille pour le cadre puis arrondi des angles avec transparence j'en suis sûr j'ai vérifié ^^ et là le problème survient. Quand je veux mettre l'image sous le cadre a son emplacement normal (il y a un petit système d'ombre sur le cadre c'est pour ça) tout se passe bien j'ai réussi à régler le probleme du noir mais il y a des angles blancs à la place de la transparence sur l'image. Je vous donne le code source pour que vous voyiez ce que vous pouvez faire.
Merci d'avance,
$output_to_browser=0;
$x=400;
$y=155;
$final_img = imagecreatetruecolor($x, $y); // where x and y are the dimensions of the final image
$image_1 = imagecreatefrompng('new_image-gd.png');
$image_2 = imagecreatefrompng('cadre_nu.png');
truecolor_convert($image_1);
truecolor_convert($image_2);
imagealphablending($final_img, false);
$transparent = imagecolorallocatealpha($final_img, 0, 0, 0, 127);
imagefill($final_img, 0, 0, $transparent);
imagesavealpha($final_img,true);
imagealphablending($final_img, true);
imagesavealpha($image_2,true);
imagecopy($final_img,$image_1, 6, 6, 0, 0, 385, 125);
imagecopy($final_img,$image_2,0, 0, 0, 0, $x, $y);



if($output_to_browser){

header('Content-Type: image/png');
imagepng($final_img);

}else{
// output to file

imagepng($final_img, 'final_img.png',0);


1 réponse

guitarsora
 
Bon désolé du dérangement le problème était dû à l'arrondi qui n'était pas transparu j'ai mal vu désolé. Bonne soirée à tous. (au moins ça pourra aider ceux qui veulent voir le code qui fonctionne pour assembler deux png)
0
Max
 
Moi je voudrais bien voir le code
0
guitarsora
 
La solution est là : http://www.xgarreau.org/aide/devel/gd/libgd3.php
Tu fais un masque de transparence à partir de ce code avec une image qui a la forme de ce que tu veux au final et puis tu appliques ce script ;)
0