Использование Perl+Image::Magick: как собрать несколько областей на одном изображении в новое изображение?

Я новичок в ImageMagick и не понял, как собрать несколько областей в новое изображение. Например, я знаю «геометрию» слов «привет» и «мир» соответственно на изображении, что мне нужно сделать, это получить изображения слов и поместить их в однострочное изображение, сохраняя при этом их относительное положение.

Вопрос 1: Предположим, я использую perl API, как мне использовать Composite() или другие правильные методы для этого?

my $geom = sprintf('%dx%x+%d+%d', $word->{width}, $word->{height}, $offsetx, $offsety); 
$x = $lineimg->Composite($wordimg, $geom); 
warn "$x" if "$x";

Предположим, что размер $lineimg достаточно велик, чтобы вместить все изображения слов, и геометрия вычислена. Этот код выдает жалобу от ImageMagick:

Exception 410: composite image required `Image::Magick' @ Magick.xs/XS_Image__Magick_Mogrify/7790 ...

Вопрос 2: в настоящее время я знаю только, как вырезать изображение слова из исходного, а затем использовать метод Clone() для восстановления исходного изображения. Есть ли способ скопировать, а не обрезать определенную область изображения? Таким образом можно сэкономить время на многократное копирование всего изображения вперед и назад.

Кто-нибудь знает, как написать такую ​​обработку? Я ценю всю вашу помощь и предложения!

-Джин


person galactica    schedule 25.02.2010    source источник
comment
Почему вы заключаете в кавычки $x в warn "$x" if "$x";? Нет необходимости делать это.   -  person Ether    schedule 25.02.2010
comment
Stackoverflow позволяет вставлять изображения в ваш вопрос. Это может помочь нам увидеть, с чего вы начинаете и чем хотите закончить. И, как всегда, минимальная работающая программа и входные данные, которые вызывают проблему, гораздо полезнее, чем отдельные фрагменты.   -  person brian d foy    schedule 26.02.2010


Ответы (1)


Судя по всему, Image::Magick не подходит для вашей задачи. Image::Magick обычно предназначен для управления всем изображением — фильтрации, масштабирования, преобразования между форматами и т. д.

Рассмотрим модуль GD, который может операций, которые вам понадобятся.

person Michael Slade    schedule 04.04.2012