Reputation: 67888
When using the function imagepng()
in PHP, how can I make sure the images that I save are saved with a transparent background?
Upvotes: 20
Views: 43725
Reputation: 767
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);
?>
Upvotes: 10
Reputation: 187
Here is the example
$newimage = imagecreatetruecolor($dst_w, $dst_h);
imagealphablending($newimage, false);
imagesavealpha($newimage, true);
$transparentindex = imagecolorallocatealpha($newimage, 255, 255, 255, 127);
imagefill($newimage, 0, 0, $transparentindex);
Upvotes: 18
Reputation: 872
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.
Upvotes: 0
Reputation: 43619
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.
Upvotes: 57