2011-06-03 4 views
0

J'ai essayé la solution d'autres mais cela n'a pas fonctionné, donc je colle ici mon code qui peut copier mais ne peut pas le sauvegarder en transparence [la partie transparente devient blanche]!fusion Images PNG transparentes avec d'autres images PNG - PHP

<?php 
$dest = imagecreatefrompng('album.png'); 
imagealphablending($dest, true); 
imagesavealpha($dest, true); 
$offset = 10; 

$friends = array ('captcha1.png', 'captcha2.png', 'captcha3.png', 'captcha4.png', 'captcha5.png', 'captcha6.png', 'captcha7.png', 'captcha8.png', 'captcha9.png'); 
$baby = array ('baby1.png', 'baby2.png', 'baby3.png', 'baby4.png'); 

$ids = getID(0, count($friends)-1, 3); 

for ($i=0;$i<3;$i++) 
{ 
    $index = $ids[$i]; 
    $src = imagecreatefrompng($friends[$index]); 
    $offsetY = imagesx($src); 
    imagecopymerge($dest, $src, 10, $offset, 0, 0, $offsetY, imagesy($src), 100); 
    $src = imagecreatefrompng($baby[rand(0,3)]); 
    imagealphablending($src, true); 
    imagesavealpha($src, true); 
    imagecopymerge($dest, $src, ($offsetY + 250), $offset, 0, 0, imagesx($src),imagesy($src), 99); 
    $offset = $offset + imagesx($src) + 45; 
} 

header('Content-Type: image/png'); 
imagealphablending($dest, true); 
imagesavealpha($dest, true); 
imagepng($dest); 

imagedestroy($dest); 
imagedestroy($src); 

function getID($min, $max, $quantity) { 
    $numbers = range($min, $max); 
    shuffle($numbers); 
    return array_slice($numbers, 0, $quantity); 
} 
?> 
+0

i aussi essayé avec ** imagealphablending ($ src, false); ** – Sourav

Répondre

2

la solution était d'utiliser

imagecopy($dest, $src, ($offsetY + 250), $offset, 0, 0, imagesx($src),imagesy($src)); 

pas

imagecopymerge($dest, $src, ($offsetY + 250), $offset, 0, 0, imagesx($src),imagesy($src), 99); 
Questions connexes