Perlmagick imagemagick ошибка
Мой хостинг-провайдер недавно обновил свои серверы, и у меня много проблем со сценариями imagemagick на Perl. Мой сценарий отлично работал на старом сервере, но не работал на новом, поэтому я вернулся к основам, чтобы попытаться разобраться, что происходит не так.
Сервер сообщает об изображении как:
Version: ImageMagick 6.7.2-2 2011-10-20 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP
и модуль Perl 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
1 ответ
Я получил аналогичные ошибки в режиме командной строки winxp с версией 6.3.7 ImageMagick.
Я изменил первые несколько строк на это, и это сработало:
my $image = Image::Magick->new(size=>"200x200");
die "Image::Magick->new failed" unless $image;
my $x = $image->Read("xc:black");
warn "$x" if "$x";