Hi, I'm trying to overlay 3 images using the Image::Magick module but I'm having trouble achieving the desired result. I have a background image (pure white background created on the fly), a foreground image (a jpeg I read from a file, which I want to overlay onto the background with an opacity of 87.8%) and a mask (a png with transparency) that overlays the whole thing.
From the command line, this is the result I'd like to achieve:
composite -dissolve 87.8 foreground.jpg -size 500x500 xc:white output.
+jpg; composite mask.png output.jpg output.jpg
I've written some code in perl using Image::Magick which looks like this:
my $mask = Image::Magick->new;
my $background = Image::Magick->new;
my $foreground = Image::Magick->new;
$mask->Read("mask.png");
$background->Set(size=>'500x500');
$background->Read("xc:white");
$foreground->Read("foreground.jpg");
$background->Composite(compose=>'Dissolve', opacity => '87.8', image=>
+$foreground);
$background->Composite(image=>$mask);
$background->Write("output.jpg");
For some reason the opacity is being ignored (changing the background image from white to red, or blue, has no effect on the image). Any help would be appreciated.