2013-02-23 6 views
5

Mam plik PNG i próbuję scalić go na szczycie pliku JPG. Z następującego koduScal plik png z jpg i zachowaj przezroczystość za pomocą 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); 

Wyniki w poniższej

enter image description here

ja też spróbował suggestion from a similar question których mówi się użyć „imagecopyresampled” isntead z „imagecopymerge” ale gdy zrobiłem, że kapelusz Santa didn w ogóle się pojawiają.

Co muszę zmienić, aby czapka Świętego Mikołaja zachowała przezroczystość podczas łączenia?

Odpowiedz

9

Rozwiązanie wymagane zarówno przy użyciu "imagecopyresampled". Jak również usunięcie linii 4 i 5 z opublikowanego kodu źródłowego.

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

Oto pełna wersja robocza

$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

Dzięki za komentarz swoje rozwiązanie. Oszczędził mi wiele kłopotów. :) – Puzbie