在PHP中使用函数imagepng()
时,如何确保保存的图像以透明背景保存?
答案 0 :(得分:46)
只需这样做:
imagealphablending($img, false);
imagesavealpha($img, true);
输出前。确保所有源文件(如果您使用的话)都设置为带透明度的32位PNG - 如果不是输出可能因黑色背景而不同或透明度不符合。
答案 1 :(得分:16)
以下是示例
$newimage = imagecreatetruecolor($dst_w, $dst_h);
imagealphablending($newimage, false);
imagesavealpha($newimage, true);
$transparentindex = imagecolorallocatealpha($newimage, 255, 255, 255, 127);
imagefill($newimage, 0, 0, $transparentindex);
答案 2 :(得分:10)
以下是imagecolortransparent
函数的示例(如果有帮助):
<?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);
?>
答案 3 :(得分:0)
有一个名为imagecolortransparent的功能,可让您设置哪种颜色是透明的。我不知道这是否能回答你的问题。