#!/usr/bin/perl use strict; use warnings; use Image::Magick; my $srcfile = shift @ARGV; my $overlay = Image::Magick->new(); $overlay->Read($srcfile); $overlay->Set(fuzz=>'5%'); $overlay->Trim(); $overlay->Set(page=>'+0+0'); $overlay->Resize(geometry=>'120x99', support=>0.9); my $image = Image::Magick->new(); $image->Set(size=>'200x100'); $image->Read('xc:#aaaaaa'); my $mask = $overlay->clone(); my $bg = $mask->Fx(expression=>'p{0,0}', channel=>'RGB'); $mask->Composite(image=>$bg, compose=>'Difference'); $mask->Modulate(brightness=>100, saturation=>0); $mask->Set(matte=>'true'); $mask->Threshold(threshold=>'5%'); $mask->Border(width=>5, height=>5, fill=>'black'); $mask->Blur(geometry=>'2x2'); $overlay->Border(width=>5, height=>5, fill=>'white'); $overlay->Set(matte=>'true'); $image->Composite(image=>$overlay, mask=>$mask, compose=>'SrcOver', gravity=>'East'); $image->Set(magick=>'jpg', quality=>75); my $imagedata = $image->ImageToBlob(); print $imagedata;