Search code examples
phpgdlib

How to create an image with transparent background


How to create an image with GDlib with a transparent background?

header('content-type: image/png');

$image = imagecreatetruecolor(900, 350);

imagealphablending($image, true);
imagesavealpha($image, true);

$text_color = imagecolorallocate($image, 0, 51, 102);
imagestring($image,2,4,4,'Test',$text_color);

imagepng($image);
imagedestroy($image);

Here the background is black


Solution

  • You have to use imagefill() and fill that with allocated color (imagecolorallocatealpha()) that have alpha set to 0.

    As @mvds said, "allocating isn't necessary", if it is a truecolor image (24 or 32bit) it is just an integer, so you can pass that integer directly to imagefill().

    What PHP does in the background for truecolor images when you call imagecolorallocate() is the same thing - it just returns that computed integer.