私のホスティング プロバイダーは最近サーバーをアップグレードしましたが、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: 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 にあるのか、それとも私のコードにあるのかを判断するための単純な例にすぎないことに注意してください。
ご協力いただきありがとうございます。
よろしく、
ストゥ