我的主机提供商最近升级了他们的服务器,我在perl中使用imagemagick脚本时遇到了很多问题。我的脚本在旧服务器上工作得很好,但在新服务器上却失败了,所以我又回到了基础上,试图找出哪里出了问题。
服务器将imagemagick报告为:
Version: ImageMagick 6.7.2-2 2011-10-20 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMPperl模块Image::Magick的版本是6.72
以下脚本保存在我的服务器上:
#!/usr/bin/perl
use CGI::Carp qw( fatalsToBrowser );
use Image::Magick;
my $image = Image::Magick->new;
$x = $image -> Set(size=>"200x200");
warn "$x" if "$x";
$x = $image -> ReadImage("canvas:black");
warn "$x" if "$x";
$x = $image -> Draw (
stroke => "red",
primitive => "line",
points => "20,20 180,180");
warn "$x" if "$x";
print "Content-type: image/gif\n\n";
binmode STDOUT;
$image -> write ("gif:-");此操作失败,并显示以下错误:
[Sun Oct 23 11:02:32 2011] imtest.pl: Exception 420: no decode delegate for this image format `lack' @ error/constitute.c/ReadImage/532 at www/11/cgi-bin/imtest.pl line 12.
[Sun Oct 23 11:02:32 2011] imtest.pl: Exception 410: no images defined `Draw' @ error/Magick.xs/XS_Image__Magick_Mogrify/7394 at www/11/cgi-bin/imtest.pl line 18.如果我将ReadImage("canvas:black")更改为ReadImage("xc:black"),则脚本将继续运行,不会输出。
我的网站主机一直在努力寻找解决方案,但我需要知道我是不是做错了什么,或者imagemagick是否存在安装问题。
请注意,我意识到上面的问题可以用其他更简单的模块来完成,但这只是一个简单的例子,用来确定问题是imagemagick还是我的代码!
谢谢你的帮助。
致以敬意,
Stu
发布于 2011-10-24 01:36:51
我在ImageMagick 6.3.7版本的winxp命令行模式下收到了类似的错误。
我将前几行代码改成了下面的代码,它起作用了:
my $image = Image::Magick->new(size=>"200x200");
die "Image::Magick->new failed" unless $image;
my $x = $image->Read("xc:black");
warn "$x" if "$x";https://stackoverflow.com/questions/7866955
复制相似问题