You can do this by using Image::Magick's
ImageToBlob function and encoding the data with MIME::Base64.
#!/usr/bin/perl -w
use strict;
use Tk;
use Image::Magick;
use MIME::Base64;
my $mw = MainWindow->new;
my $image = Image::Magick->new;
$image->Read('foo.gif');
# Perform any Magick manipulation here ...
my ($blob) = $image->ImageToBlob();
my $buttonImage = $mw->Photo(-data => encode_base64($blob));
$mw->Button(-image => $buttonImage)->pack;
MainLoop;
Thanks to
Jouke for the
pointer on using MIME::Base64 to encode Tk images.
-- grummerX