【发布时间】:2016-06-04 08:30:28
【问题描述】:
我有一个透明的图像,中间有一个条... http://i66.tinypic.com/2zyeg4h.png
使用php我想去掉bar中间的部分,在bar中间留下一个透明的空间。我试试这段代码...
$im = imagecreatefrompng('****root****/image.png');
//make a yellow box
$transparent = imagecolorallocate($im, 255, 255, 0);
//make the yellow box transparent
imagecolortransparent($im, $transparent);
imagefilledrectangle($im, 200, 115, 300, 137, $transparent);
imagealphablending($im, false);
imagesavealpha($im, true);
header ('Content-Type: image/png');
imagepng($im);
$save = "****root****/test.png";
imagepng($im, $save);
imagedestroy($im);
?>
但输出图像的矩形保留黄色,而不是使其透明。
http://i67.tinypic.com/1ny6j4.png
我哪里错了?如果我删除...
imagealphablending($im, false);
imagesavealpha($im, true);
我得到了中心的透明框(在浏览器中),但是图像的其余部分失去了透明度,而是变成了白色背景,当我下载该图像并在照片编辑器中打开时,透明度框在中心不见了。我在我的服务器上设置了 GD 库。
【问题讨论】:
-
127 是 100% 不透明度的正确值。检查这个答案stackoverflow.com/questions/13540231/…
-
嗨,米歇尔,感谢您的回复,我试过了... $transparent = imageColorAllocateAlpha($im, 0, 0, 0, 127); ....但现在酒吧没有受到影响。输出就像原始图像一样...i66.tinypic.com/2zyeg4h.png
标签: php