When using the function imagepng() in php, how can I make sure the images that I save are saved with a transparent background?
+1
A:
Simply do this:
imagealphablending($img, false);
imagesavealpha($img, true);
Before outputting. Make sure that all source files (if you used any) are set to PNG 32-bit with transparency - if not the output may differ with black background or transparency does not comply.
thephpdeveloper
2009-11-10 01:30:06
Transparency is often called "alpha".
Ewan Todd
2009-11-10 01:40:38
A:
There's a function called imagecolortransparent that allows you to set which color is made transparent. I don't know if this answers your question.
lamelas
2009-11-10 01:31:02
+1
A:
Here is an example of the imagecolortransparent function (if it helps):
<?php
// Create a 55x30 image
$im = imagecreatetruecolor(55, 30);
$red = imagecolorallocate($im, 255, 0, 0);
$black = imagecolorallocate($im, 0, 0, 0);
// Make the background transparent
imagecolortransparent($im, $black);
// Draw a red rectangle
imagefilledrectangle($im, 4, 4, 50, 25, $red);
// Save the image
imagepng($im, './imagecolortransparent.png');
imagedestroy($im);
?>
from the PHP manual: http://php.net/manual/en/function.imagecolortransparent.php
Eric
2009-11-10 01:33:36
Eric beat me to it here. Later on the same page, someone comments, "When you use palette images (created with imagecreate()), the first color allocated is the background color. This color cannot be used for transparency. So if you want to make the background transparent, first allocate a dummy background color, then allocate the real background color and declare this is as transparent."
Ewan Todd
2009-11-10 01:38:13