问题
使用 Imagick::newPseudoImage 创建径向渐变时,Apache HTTP 错误日志中出现此错误,并且未创建径向渐变:
PHP 致命错误:未捕获的异常 'ImagickException' 并在 /var/www/html/energy/scripts/rg.php:6 中显示消息“无法创建新的伪图像:径向渐变:#FF0000-#FFFFFF”\n堆栈跟踪: \n#0 /var/www/html/energy/scripts/rg.php(6): Imagick->newpseudoimage(150,150, 'radial-gradient...')\n#1 {main}\n 抛出 /第 6 行的 var/www/html/energy/scripts/rg.php
研究
缺少 Imagick::newPseudoImage 的 PHP 文档,但根据链接文本(搜索“radial”):
RADIAL_GRADIENT...从一个阴影渐变到另一个阴影...返回使用指定图像大小渲染的径向渐变图像。指定所需的阴影作为文件名的一部分(例如radial-gradient:red-blue 或radial-gradient:#F00-#00F)。
我尝试过使用“RADIAL_GRADIENT”而不是“radial-gradient”以及我能想到的所有其他组合。最后,我想提供 Imagick::newPseudoImage RGB 值而不是十六进制并将创建的图像保存到磁盘。
我的 PHP 脚本
// 创建一个新的 imagick 对象。
$image = 新的想象();
// 一个从红色渐变到白色的径向渐变新图像,大小为 150 x 150 像素。$image->newPseudoImage(150,150,'radial-gradient:#FF0000-#FFFFFF');
// 将图像格式设置为 PNG。
$image->setImageFormat('png');
// 输出图像。
header("内容类型:图片/png");
回声$图像;
我的环境
imagick 3.0.1RC1
ImageMagick 6.2.8.0
PHP 5.2.14
RedHat Enterprise Linux 5.5
谢谢 :-)