I wrote a similar script to create thumbnails of images, but instead of using GD, I used some of Tk's functionality. Here's the relevant snippet:
my $main = new MainWindow;
my $canvar = $main->Canvas()->grid;
# $im_format is either "gif" or "jpeg"
# $_ is full path to file
my $image = $canvar->Photo('-format' => $im_format, -file => $_);
# Using the Image::Size module
my ($x, $y) = imgsize($_);
# An easy number for me to use - YMMV
my $scale_factor = ceil($x / 100);
# This will be the thumb
my $newimg = $canvar->Photo();
# This is where the magic happens
# Write it to file
$newimg->write($thumb_name, -format => $im_format);
Not super elegant, but it works!GuildensternNegaterd character class uber alles!