【问题标题】:perlmagick imagemagick errorperlmagick imagemagick 错误
【发布时间】:2011-12-13 14:17:58
【问题描述】:

我的托管服务提供商最近升级了他们的服务器,我在 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 还是我的代码!

感谢您的帮助。

问候,

学习

【问题讨论】:

  • 问题出在服务器上的 ImageMagick,我的虚拟主机仍然不确定如何解决问题,但是在 perl 脚本中将 ImageMagick 限制为一个 cpu 核心可以解决问题

标签: perl imagemagick perlmagick


【解决方案1】:

我在使用 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";

【讨论】:

  • 谢谢,试了一下,但不幸的是没有帮助。我一直在从 unix 命令行运行脚本,当 imagemagick 尝试创建 tmp 文件时它似乎挂起,所以认为这取决于服务器上的 imagemagick 安装:(
猜你喜欢
  • 2021-01-15
  • 2013-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多