我的本地版本为 ImageMagick 6.7.3-10 (PHP 5.2.10),服务器端版本为 ImageMagick 6.5.4-7 (PHP 5.3.9)。碰巧服务器端没有生成透明背景,但其他颜色仍然有效。然而,透明背景下本地效果很好。无论如何我可以解决以便在服务器端使用透明背景?
$canvas = new Imagick();
$canvas->newImage( $size, $size, new ImagickPixel( 'transparent' ) );
我的本地版本为 ImageMagick 6.7.3-10 (PHP 5.2.10),服务器端版本为 ImageMagick 6.5.4-7 (PHP 5.3.9)。碰巧服务器端没有生成透明背景,但其他颜色仍然有效。然而,透明背景下本地效果很好。无论如何我可以解决以便在服务器端使用透明背景?
$canvas = new Imagick();
$canvas->newImage( $size, $size, new ImagickPixel( 'transparent' ) );
对我来说,“无”或“透明”都不起作用,但“rgba(250,15,150,0)”用 Imagick 真正稀疏的文档结束了我长期的痛苦。
您是否尝试过不透明而不是透明?
Stackoverflow 的另一个答案:在构建 ImagickPixel 时设置 Alpha 通道
确保将结果保存为实际支持透明度的格式……因此不是 JPG,而是 GIF 或 PNG……听起来很简单,但经常被遗忘(尤其是在未明确定义时)
我在本地开发的代码中遇到了同样的问题,但在透明像素的生产环境中却没有。我尝试了上述所有解决方案,但透明度根本不起作用。最后我换$im->setImageFormat( 'png24' );
了$im->setImageFormat( 'png' );
,一切又开始工作了。“png24”格式必须是后来添加的。