php GD создает прозрачное изображение png

Я пытаюсь создать прозрачный png-образ и слой для разных png и jpg, чтобы создать окончательный png с прозрачностью. У меня возникли проблемы с созданием моего первоначального пустого прозрачного png. В настоящее время он имеет белый фон.

Может кто-то указать мне верное направление. Это мой код до сих пор …

$image = imagecreatetruecolor(485, 500); imagealphablending($image, false); imagesavealpha($image, true); $col=imagecolorallocatealpha($image,255,255,255,127); imagefill($image, 0, 0, $col); //imagefilledrectangle($image,0,0,485, 500,$col); /* add door glass */ $img_doorGlass = imagecreatefrompng("glass/$doorStyle/$doorGlass.png"); imagecopyresampled($image, $img_doorGlass, 106, 15, 0, 0, 185, 450, 185, 450); /* add door */ $img_doorStyle = imagecreatefrompng("door/$doorStyle/$doorStyle"."_"."$doorColor.png"); imagecopyresampled($image, $img_doorStyle, 106, 15, 0, 0, 185, 450, 185, 450); $fn = md5(microtime()."door_builder").".png"; if(imagepng($image, "user_doors/$fn", 1)){ echo "user_doors/$fn"; } imagedestroy($image); 

Установите imagealphablending($image,true); на каждом новом слое.

Попробуй это:

 <?php $image = imagecreatetruecolor(485, 500); imagealphablending($image, false); $col=imagecolorallocatealpha($image,255,255,255,127); imagefilledrectangle($image,0,0,485, 500,$col); imagealphablending($image,true); /* add door glass */ $img_doorGlass = imagecreatefrompng("glass/$doorStyle/$doorGlass.png"); imagecopyresampled($image, $img_doorGlass, 106, 15, 0, 0, 185, 450, 185, 450); imagealphablending($image,true); /* add door */ $img_doorStyle = imagecreatefrompng("door/$doorStyle/$doorStyle"."_"."$doorColor.png"); imagecopyresampled($image, $img_doorStyle, 106, 15, 0, 0, 185, 450, 185, 450); imagealphablending($image,true); $fn = md5(microtime()."door_builder").".png"; imagealphablending($image,false); imagesavealpha($image,true); if(imagepng($image, "user_doors/$fn", 1)){ echo "user_doors/$fn"; } imagedestroy($image); ?> 

Этот код работал для меня:

 $img=imagecreatetruecolor(180,20); imagealphablending($img,false); $col=imagecolorallocatealpha($img,255,255,255,127); imagefilledrectangle($img,0,0,180,20,$col); imagealphablending($img,true); $font=$_SERVER["DOCUMENT_ROOT"].'/fonts/Arial.ttf'; $color = imagecolorallocate($img, 140, 173, 209); imagettftext($img,11,0,5,14,$color,$font,'Text goes here'); header('Content-Type: image/png'); imagealphablending($img,false); imagesavealpha($img,true); imagepng($img); 

Попробуйте заменить
$col=imagecolorallocatealpha($image,255,255,255,127);
с
$col=imagecolorallocate($image,255,255,255);

и попытайтесь imagefilledrectangle строку imagefilledrectangle .
Я могу проверить этот код – дайте мне фотографии 🙂