在PHP GD中,是否可以使图像自我透明?我不是在谈论背景等。是否可以拍摄PNG图像,并使图像透明?
例如:
$c = imagecreatefrompng($urlToImage);
imagefill($c, 0, 0, imagecolorallocatealpha($c, 255, 255, 255, 50)); // 50 alpha.
imagepng($c);
然而,这没有做任何事情。有什么我想念的吗?谢谢。
答案 0 :(得分:1)
您忘记使用imagecolortransparent()
功能。更多:
http://www.php.net/manual/en/function.imagecolortransparent.php
从评论中得到的是一个添加透明度的例子
if($transparency) {
if($ext=="png") {
imagealphablending($new_img, false);
$colorTransparent = imagecolorallocatealpha($new_img, 0, 0, 0, 127);
imagefill($new_img, 0, 0, $colorTransparent);
imagesavealpha($new_img, true);
} elseif($ext=="gif") {
$trnprt_indx = imagecolortransparent($img);
if ($trnprt_indx >= 0) {
//its transparent
$trnprt_color = imagecolorsforindex($img, $trnprt_indx);
$trnprt_indx = imagecolorallocate($new_img, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);
imagefill($new_img, 0, 0, $trnprt_indx);
imagecolortransparent($new_img, $trnprt_indx);
}
}
} else {
Imagefill($new_img, 0, 0, imagecolorallocate($new_img, 255, 255, 255));
}