Fusionner deux images PNG avec la librairie GD de PHP

Quelqu'un at-il un script qui peut fusionner deux images PNG?

Avec les conditions suivantes:

  • Les deux images ont des zones transparentes
  • La deuxième image doit avoir une opacité de 50% (elle est placée sur la première image)

Voici ce que j'ai essayé de faire mais sans succès:

<?php

function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct){ 
    $cut = imagecreatetruecolor($src_w, $src_h);
    imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h); 
    imagecopy($cut, $src_im, 0, 0, $src_x, $src_y, $src_w, $src_h); 
    imagecopymerge($dst_im, $cut, $dst_x, $dst_y, 0, 0, $src_w, $src_h, $pct); 
}

$image1 = imagecreatefrompng('a.png'); //300 x 300
$image2 = imagecreatefrompng('b.png'); //150 x 150

$merged_image = imagecreatetruecolor(300, 300);
imagealphablending($merged_image, false);
imagesavealpha($merged_image, true);

imagecopy($merged_image, $image1, 0, 0, 0, 0, 300, 300);
imagecopymerge_alpha($merged_image, $image2, 0, 0, 0, 0, 150, 150, 50);

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

?>

Edit:

  • Première Image (à gauche) et la Deuxième Image (à droite)

Fusionner deux images PNG avec la librairie GD de PHP

  • C'est comment il devrait être (à gauche) et le résultat de mon code (à droite)

Fusionner deux images PNG avec la librairie GD de PHP

  • Le résultat de la solution proposée par dqhendricks

Fusionner deux images PNG avec la librairie GD de PHP

Expliquer mais sans succès. Quel est le code que vous avez posté produire?
Bienvenue à Débordement de Pile! "Il n'a pas de travail" est jamais, une bonne description de l'erreur. Veuillez décrire ce qui ne va pas, ce que les messages d'erreur que vous obtenez, etc.
La première image est transparent, le fond de la deuxième image qui devrait être transparent, qui devient noir (semi-transparent noir).
bienvenue. vous êtes nouveau, de sorte que vous ne connaissez pas encore, mais ce n'est pas un site pour demander où de "script". il est utilisé pour comprendre les problèmes de programmation.

OriginalL'auteur acoder | 2012-02-20