Я новичок в 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() для восстановления исходного изображения. Есть ли способ скопировать, а не обрезать определенную область изображения? Таким образом можно сэкономить время на многократное копирование всего изображения вперед и назад.
Кто-нибудь знает, как написать такую обработку? Я ценю всю вашу помощь и предложения!
-Джин
warn "$x" if "$x";
? Нет необходимости делать это. - person Ether   schedule 25.02.2010