Perlmagick imagemagick ошибка - PullRequest
       24

Perlmagick imagemagick ошибка

3 голосов
/ 23 октября 2011

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

0 голосов
/ 23 октября 2011

Я получил подобные ошибки в режиме командной строки 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";
...