2013-02-23 7 views
5

Ho un PNG e sto cercando di unirlo sopra un JPG. Con il seguente codiceUnisci un png ontop di un jpg e mantieni la trasparenza con php

$dest = imagecreatefromjpeg("example.jpg"); 
$src = imagecreatefrompng("example.png"); 

imagealphablending($dest, false); 
imagesavealpha($dest, true); 

imagealphablending($src, true); 

imagecopymerge($dest, $src, $src2x, $src2y, 0, 0, $src2w, $src2h, 100); 

header('Content-Type: image/png'); 
imagepng($dest, "user/".$imei."/".$picCount."_m"); 

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

risultati nel seguente

enter image description here

Ho anche provato un suggestion from a similar question, che ha detto di usare isntead 'imagecopyresampled' di 'imagecopymerge', ma quando ho fatto che il cappello didn Santa si presentano a tutti.

Cosa è necessario modificare per rendere il cappello della santa mantenere la trasparenza quando viene unito?

risposta

9

Soluzione richiesta sia con 'imagecopyresampled'. Oltre a rimuovere le righe 4 e 5 dal codice sorgente pubblicato.

imagealphablending($dest, false); 
imagesavealpha($dest, true); 

Ecco la versione di lavoro completa

$dest = imagecreatefromjpeg("example.jpg"); 
$src = imagecreatefrompng("example.png"); 

imagecopyresampled($dest, $src, $src2x, $src2y, 0, 0, $src2w, $src2h, $src2w, $src2h); 

header('Content-Type: image/png'); 
imagejpeg($dest, "user/".$imei."/".$picCount."_m.jpeg"); 

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

enter image description here

+1

Grazie per pubblicare la tua soluzione. Mi ha salvato un sacco di problemi. :) – Puzbie