le 08/08/2005 à 16:51
mobman02
Bonjour,
voila j'ai un sacré probléme qui me bloque bien dans l'avancement de mon script.
En effet, je cherche a coller un logo (un PNG a fond transparent fait sous photoshop) sur une autre (PNG ou JPEG).
A chaque fois que j'essai, le fond du logo prend une couleur (souvent blanc, ou vert pale...)
Je fouiller la doc, j'ai trouver deux ou trois personnes qui en parler dans les commentaires, mais vu mon anglais approximatif j'ai pas du tout comprendre.
Sur tout le net francophone je n'ai rien trouvé expliquant clairement la transparence des PNG sous PHP... (ca serais une idée de cour ! ;))
Voici le logo:
Le logo
Voici le fond:
L'image de fond
Voici le resultat:
La page test.php
Et enfin le code source:
Voila j'espere que mon code est pas trop long pour la page,
et merci a ceux qui pourrons m'aider dans cette aventure lol,
je penser que cette etape serais la plus simple mais je bloque encore :P
voila j'ai un sacré probléme qui me bloque bien dans l'avancement de mon script.
En effet, je cherche a coller un logo (un PNG a fond transparent fait sous photoshop) sur une autre (PNG ou JPEG).
A chaque fois que j'essai, le fond du logo prend une couleur (souvent blanc, ou vert pale...)
Je fouiller la doc, j'ai trouver deux ou trois personnes qui en parler dans les commentaires, mais vu mon anglais approximatif j'ai pas du tout comprendre.
Sur tout le net francophone je n'ai rien trouvé expliquant clairement la transparence des PNG sous PHP... (ca serais une idée de cour ! ;))
Voici le logo:
Le logo
Voici le fond:
L'image de fond
Voici le resultat:
La page test.php
Et enfin le code source:
test.php
<?php
header ("Content-type: image/png");
$maison = "maisons/niveau_1.png";
$fond_plan = "fond-test.png"; // optional backgroundfile if you don't want to use a color
// On charge d'abord les images
$source = imagecreatefrompng($maison); // Le logo est la source
imageAlphaBlending($source, true); // ça c'est un truc que j'ai lu dans la doc mais ca marche pas
$destination = imagecreatefrompng($fond_plan); // La photo est la destination
imageAlphaBlending($destination, true); // ça c'est un truc que j'ai lu dans la doc mais ca marche pas
// On met le logo (source) dans l'image de destination (la photo)
$destination_x = "50";
$destination_y = "50";
$dimension = "40";
// La c'est un truc que j'avait tenter, inefficace aussi
/* $orange = imagecolorallocate($source, 255, 128, 0); // j'essaie en mettant un fond au logo
imagecolortransparent($destination, $orange); // et en le supprimant pour le rendre transparent */
imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $dimension, $dimension, 100);
// On affiche l'image de destination qui a été fusionnée avec le logo
imagejpeg($destination);
?>
Voila j'espere que mon code est pas trop long pour la page,
et merci a ceux qui pourrons m'aider dans cette aventure lol,
je penser que cette etape serais la plus simple mais je bloque encore :P