我有一个透明的图像,中间有一个条. http://i66.tinypic.com/2zyeg4h.png
使用php我想删除中间部分的酒吧,在酒吧的中间留下一个透明的空间.我尝试这个代码.
$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库。
1条答案
按热度按时间sd2nnvve1#
你需要使用gd函数
imagecolorallocatealpha
来创建一个透明的颜色。您可以使用PHP生成整个图像。
例如
字符串
的数据
如果你想坚持现有的形象,
型
input.png
的
output.png
的
如果您不将图像作为结果提交给浏览器,则不需要发送标头。
例如
型
将在请求浏览器中显示图像,而不是将其保存到文件中。