imagecopymerge crear php image transparency gd

imagecopymerge - crear thumbnails php



php GD crea una imagen png transparente (3)

Intento crear una imagen png transparente y capa varias otras pngs y jpgs para crear un png final con transparencia. Tengo problemas para crear mi png transparente vacío inicial. Actualmente tiene un fondo blanco.

¿Alguien puede señalarme en la dirección correcta? Este es mi código hasta ahora ...

$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);


Establecer imagealphablending($image,true); en cada nueva capa.

Prueba esto:

<?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); ?>


Intenta reemplazar
$col=imagecolorallocatealpha($image,255,255,255,127);
con
$col=imagecolorallocate($image,255,255,255);

y tratar de descomentar la línea de imagefilledrectangle de imagen.
Puedo probar este código - dame las fotos :)


Este código funcionó para mí:

$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);