2015-12-02 85 views
1

我是CPAN模块Image :: Hash的作者。它是一个模块,用于执行图像散列,并使用GD,Image :: Magick或Imager处理图像,具体取决于用户系统上安装的内容。Perl模块Image :: Magick :: Q16 ::工作中常常缺少Image :: Magick?

我测试,看看图片:: Magick是在这样的EVAL包安装它:

eval { require Image::Magick}; 

如果安装了图像:: Magick模块将使用它。

这一直很好,但最近我从CPAN测试人员那里得到了两个错误报告,其中我的模块失败,出现错误“Image :: Magick :: Q16 :: constant not defined”

这是否意味着您可以安装Image :: Magick,但仍然没有工作环境,因为Image :: Magick :: Q16缺失?

我该如何处理?

我不想添加Image :: Magick :: Q16:作为每个人的需求,因为它在除了两个平台之外的所有平台上都能正常工作。

的CPAN测试者报告:

图片散列-0.06:

Image-Hash-0.06:

只是为了澄清;根据CPAN测试人员的说法,我的模块在215个平台上工作,并在2上失败。所以这不是一个常见的错误。我目前不容易访问perl 5.18.1的机器。

+1

可以安装ImageMagick的Q8版本而不是通常的Q16,并获取他们所看到的错误消息。我怀疑Q16已经安装在你测试过的两个平台上,所以可以继续使用Image :: Magick :: Q16作为要求。 –

+1

我已经进一步调查了这一点,没有名为Image :: Magick :: Q16(也不是Image :: Magick :: Q8或Image :: Magick :: Q32)的cpan包。这个名字必须是Image :: Magick的内部。这意味着添加Image :: Magick :: Q16作为要求不会解决这个问题。 –

回答

0

这是否意味着您可以安装Image :: Magick,但仍然没有工作环境,因为Image :: Magick :: Q16缺失?

正确。 Quantum常量是在ImageMagick库的编译期间定义的。引用PerlMagicks Overview document

PerlMagick是量子意识到。当你实例化一个图像对象可以请求特定量子深度:

use Image::Magick::Q16; 
$image = Image::Magick::Q16->new; 

我不熟悉Perl,但我可以看到具体的量子恒将defined here

package Image::Magick::@[email protected]; 

@[email protected]可以通过--with-quantum-depth & --enable-hdri的影响。见Advanced Unix Installation

所以下面的包可能是有效的...

  • Image::Magick::Q8
  • Image::Magick::Q16
  • Image::Magick::Q32

而且也许有附加HDRI后缀。