2015-12-02 4 views
1

Я являюсь автором модуля CPAN Image :: Hash. Это модуль для создания хэширования изображений и использует GD, Image :: Magick или Imager для работы с изображениями, в зависимости от того, что установлено в системе пользователей.Модуль Perl Image :: Magick :: Q16 :: постоянный отсутствует при работе Image :: Magick?

я тест, чтобы увидеть, если изображение :: Magick устанавливается обернув его в Eval, как это:

eval { require Image::Magick}; 

Если установлен Image :: Magick модуль будет использовать его.

Это отлично работает, но в последнее время я получил два отчета об ошибке от тестеров CPAN, где мой модуль выходит из строя с ошибкой «Изображение :: Magick :: Q16 :: constant not defined».

Dos это означает, что вы можете установить Image :: Magick, но все еще не иметь рабочей среды, потому что Image :: Magick :: Q16 отсутствует?

Как с этим справиться?

Я не хочу добавлять изображение :: Magick :: Q16: как требование для всех, потому что он работает правильно без него на всех, кроме двух платформах.

Отчеты тестеры CPAN:

Image-Hash-0,06:

Image-Hash-0.06:

Просто для уточнения; в соответствии с тестировщиками CPAN мой модуль работает на 215 платформах и не работает на 2. Так что это не обычная ошибка. В настоящее время у меня нет доступа к машине с perl 5.18.1.

+1

Можно установить версию ImageMagick Q8 вместо обычного Q16 и получить сообщение об ошибке, которое они видят. Я подозреваю, что Q16 установлен на всех, кроме двух платформах, которые вы тестировали, поэтому было бы безопасно идти вперед и требовать Image :: Magick :: Q16. –

+1

Я исследовал это дальше, и нет пакета cpan с именем Image :: Magick :: Q16 (или Изображение :: Магия :: Q8 или Изображение :: Магия :: Q32). Это имя должно быть внутренним для Image :: Magick. Это означает, что добавление Image :: Magick :: Q16 в качестве требования не исправит это. –

ответ

0

Dos это означает, что вы можете иметь изображение :: Magick установлен, но все еще не имеет рабочей среды, потому что изображение :: Magick :: Q16 отсутствует?

Исправить. Квантовые константы определяются во время компиляции библиотеки ImageMagick. Процитировать PerlMagicks Overview document.

PerlMagick is quant осведомленный. Вы можете запросить конкретную квантовую глубину при создании экземпляра объекта изображения:

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 суффикса.

Смежные вопросы