Page 1 sur 1

Librairie GD et merging

Posté : 06 févr. 2010, 15:31
par Pymous
Bonjour à tous !

Voila, donc j'ai un petit soucis avec la librairie GD pour mon script PHP, je m'explique.

Je souhaite fusionner deux .png (en gardant la transparence du fond), j'utilise donc le code suivant:
<?php
header ("Content-type: image/png");

// On charge d'abord les images
$source = imagecreatefrompng("images/tag/P.png"); // La premiere lettre
$destination = imagecreatefrompng("images/tag/background.png"); // Le fond de destination
// Recreation du masque de transparence
imagealphablending($source, false);
imagesavealpha($source, true);
imagealphablending($destination, false);
imagesavealpha($destination, true);

// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);

// On veut placer la premiere lettre tout en bas à droite
$destination_x = $largeur_destination - $largeur_source;
$destination_y =  $hauteur_destination - $hauteur_source;

// On fusionne les deux
imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 100);

// Puis on renvoie
imagepng($destination);

?>
Je suis théoriquement censé obtenir mon image avec "Anthology Team" en fond transparent puis le "P" en bas de l'image avec un fond transparent lui aussi.

Mais voici le résultat que j'obtient: ICI

et vous verrez que ce n'est pas vraiment le cas ^^ .

J'utilise GD pour la premiere fois, je suis donc un peu perdu, j'aurais donc besoin de votre aide ! :)

Merci d'avance.

Pymous.

Re: Librairie GD et merging

Posté : 04 mars 2010, 06:41
par Danyz
Salut,

remplace
imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 100);
par
imagecopy($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source);
ça devrait marcher ;)

Re: Librairie GD et merging

Posté : 04 mars 2010, 06:44
par Invité
et aussi, à vérifier, mais je pense que tu peux remplacer
imagealphablending($source, false);
imagesavealpha($source, true);
imagealphablending($destination, false);
imagesavealpha($destination, true);
par :
imagesavealpha($source, true);
Perso ça marche juste avec ça ;)