2010-08-23 158 views
0

问题
当使用Imagick :: newPseudoImage形成放射状的梯度,这种错误出现在的Apache HTTP错误日志和径向渐变不创建:Imagick是否支持径向渐变?

PHP Fatal error: Uncaught exception 'ImagickException' with message 'Unable to create new pseudo image: radial-gradient:#FF0000-#FFFFFF' in /var/www/html/energy/scripts/rg.php:6\nStack trace:\n#0 /var/www/html/energy/scripts/rg.php(6): Imagick->newpseudoimage(150,150, 'radial-gradient...')\n#1 {main}\n thrown in /var/www/html/energy/scripts/rg.php on line 6


的PHP缺少Imagick :: newPseudoImage的文档,但根据link text(搜索“径向”):

RADIAL_GRADIENT...Gradual radial passing from one shade to another...Returns a rendered radial gradient image using the specified image size. Specify the desired shading as part of the filename (e.g. radial-gradient:red-blue or radial-gradient:#F00-#00F).

我试过使用“RADIAL_GRADIENT”而不是“radial-gradient”和其他所有可以想到的组合。最近,我想喂养Imagick :: newPseudoImage RGB值而不是十六进制,并将创建的图像保存到磁盘。

我的PHP脚本

//创建一个新imagick对象。
$ image = new Imagick();

//一张径向渐变从红色变为白色,150 x 150像素的新图像。 $ image-> newPseudoImage(150,150,'radial-gradient:#FF0000-#FFFFFF');

//将图像格式设置为PNG。
$ image-> setImageFormat('png');

//输出图像。
header(“Content-Type:image/png”);
echo $ image;

我的环境
imagick 3.0.1RC1
的ImageMagick 6.2.8.0
PHP 5.2.14
红帽企业版Linux 5.5

谢谢:-)

回答

0

您正在使用的ImageMagick 6.2.8;最新的是6.6.3。这两个版本之间有很多增强功能。您参考的文档页面描述了最新版本(据我所知)。

他们的下载页面有RPMs,用于在CentOS 5.4上安装最新版本(与RedHat Enterprise Linux 5.4基本相同)。这些很可能在5.5以及工作 - 给他们一个尝试:)

(我不知道很多关于PHP的绑定,所以不能帮你恐怕:)

+0

谢谢!我卸载了我系统上的旧RedHat ImageMagick,并从ftp.imagemagick.com/安装了较新的RPM(ImageMagick-6.6.3-9.x86_64.rpm和ImageMagick-devel-6.6.3-9.x86_64.rpm)。安装程序通知我需要其他一些依赖关系。总的来说,安装很容易。我现在能够使用imagick创建径向渐变图像:-) – Nick 2010-08-24 22:51:22