Perl+Image::Magick usage: how to assemble several areas in one image into a new image?
Posted
by
Jin
on Stack Overflow
See other posts from Stack Overflow
or by Jin
Published on 2010-02-25T03:42:11Z
Indexed on
2011/03/08
0:10 UTC
Read the original article
Hit count: 311
perl
|imagemagick
Hi Everybody,
I'm new to ImageMagick and haven't figured out how to assemble several areas into a new image. E.g., I know the "geometry" of words "hello" and "world" respectively in an image, what I need to do is to retrieve the word images and put then into one line image while keep their relative positions.
Question1: Suppose I use the perl API, how should I use Composite() or other correct methods to do this?
my $geom = sprintf('%dx%x+%d+%d', $word->{width}, $word->{height}, $offsetx, $offsety);
$x = $lineimg->Composite($wordimg, $geom);
warn "$x" if "$x";
Suppose $lineimg's size is big enough to hold all word images and the geometry has been computed. This code gives out a complain by ImageMagick:
Exception 410: composite image required `Image::Magick' @ Magick.xs/XS_Image__Magick_Mogrify/7790 ...
Question2: currently I only know how to crop a word image out of the original one and then Clone() method to restore the original image. Is there a way to copy instead of crop a specific area from a image? This way can save the time to copy back and forth the whole image several times.
Does anybody know how to write this kind of processing? I appreciate all your help and suggestions!
-Jin
© Stack Overflow or respective owner