Мой хостинг-провайдер недавно обновил свои серверы, и у меня много проблем со сценариями 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