2016-03-07 4 views
1
my $im = Image::Magick->new(); 
for my $image (@$imagedata) { 
    $im->Read ($image); 
} 
my $tile = "1x"; 
my $output = $im->Montage (tile => $tile, geometry=>'135x50'); 
$output->Write("sprite_logos.png"); 

я написал выше код, я получаю как ошибка «Не удается найти метод объекта„Write“с помощью пакета» Exception 410: изображения не определено Image::Magick'" (perhaps you forgot to load "Exception 410: no images defined Image :: Magick» "?) в строке logo_sprit.pl 65."Image :: Magick модуль использования с Perl

Когда проверяется на вопрос после того, как debugging.I обнаружил, что этот модуль испытывает некоторые проблемы с изображениями типа (41726.jpg? +0,641405799749506 &, 85872.jpg)

Может кто-то помочь мне в этом вопросе.

+0

Вы не указали наиболее важные детали: как инициализируется '$ output'? – choroba

+0

Я добавил оставшийся фрагмент кода. Пожалуйста, ознакомьтесь с этим. – Codeshow

ответ

3

Кажется Montage возвращает Image::Magick объект с успехом и строку, содержащую исключение в противном случае. Проверьте успех

my $output = $im->Montage (tile => $tile, geometry=>'135x50'); 
die $output unless ref $output; 

$output->Write($filename); 

Аналогично, вы должны проверить вывод метода Read - он должен быть пустым на успех. В противном случае он содержит текст исключения.

+0

он все еще дает «Исключение 410: изображения не определены« Изображение :: Магия »на странице logo_sprit.pl 65." – Codeshow

+0

@Codeshow: Да, но вы не можете вызывать методы для чего-то, что не является объектом. Теперь пришло время выяснить, почему вызов Montage не удался. – choroba

+0

Попробуйте также напечатать возвращаемое значение метода 'Read'. – choroba

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