2015-12-02 117 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後綴。