如何使用 GD 或 Imagick 在非透明纯色图像内创建透明区域?
Posted
技术标签:
【中文标题】如何使用 GD 或 Imagick 在非透明纯色图像内创建透明区域?【英文标题】:How do I create a transparant area inside a non transparant solid color image using GD or Imagick? 【发布时间】:2013-08-20 12:01:45 【问题描述】:使用 imagick 和 GD 库,我尝试制作具有透明中心的方形图像。我试着这样做:
$img = imagecreatetruecolor($width, $height);
imagefilledrectangle($img, $left, $top, $right, $bottom, imagecolorallocate($img, 255, 255, 255));
imagecolortransparent($img, imagecolorallocate($img, 255, 255, 255));
ob_start();
ini_set('memory_limit', '-1');
imagepng($img, './imagecolortransparent.png');
$blob = ob_get_clean();
但是,对于中心小框,最终结果始终是不透明的。我在某处做错了吗?任何帮助将不胜感激:(。
【问题讨论】:
【参考方案1】:您必须激活 imagesavealpha 才能获得透明度。
imagesavealpha($img,true);
imagepng($img, './imagecolortransparent.png');
【讨论】:
以上是关于如何使用 GD 或 Imagick 在非透明纯色图像内创建透明区域?的主要内容,如果未能解决你的问题,请参考以下文章