<#!/usr/bin/perl
use warnings;
use strict;
use Imager;
my $file = shift;
my $img = Imager->new();
$img->open(file=>$file) or die $img->errstr();
my $newimg = $img->convert(preset=>'grey');
$newimg->write(file=>'gray.jpg');
What I have found with Imager, is that is has some very powerful, but basic tools. If you look at them closely, you probably can figure out a sequence of operations to acheive what you want. Look at "perldoc Imager" to get a list of it's sub modules, check out Imager::Filters and it's $img->difference method.