Coller une image a fond transparent sur une autre

Répondre
mobman02
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:
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); // &ccedil;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); // &ccedil;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
http://damienalexandre.fr/
LA GLOBULE
le 08/08/2005 à 21:56
LA GLOBULE
Il faut que tu calcules la transparence sur chaque pixel de ton image.

Sinon, reste logique dans ton code : tu commences un header png, et à la fin, tu dessines un jpeg...
mobman02
le 09/08/2005 à 03:17
mobman02
"Il faut que tu calcules la transparence sur chaque pixel de ton image."

C'est a dire ? Par exemple mettre des fond vert fluo a toute mes image, que je n'aurais qu'a rendre transparent en php ? Ouais c'est une solution j'essayerais.

"Sinon, reste logique dans ton code : tu commences un header png, et à la fin, tu dessines un jpeg..."
Ah ouais lol oupsss, c'est une page de test vite fait mal fait c'est pour ca...

Merci bien de ton aide
http://damienalexandre.fr/
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours