Is the image data actually raw, packed, 24-bit pixels? If it's in a compressed format, you'll have to do incremental loading with a PixbufLoader. /me pokes google for EXIF thumbnail format According to http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif- e.html#ExifThumbs the thumbnail will be JPEG or TIFF, not raw bits. Do this, instead: my $loader = Gtk2::Gdk::PixbufLoader->new; $loader->write ($data); $loader->close (); my $pixbuf = $loader->get_pixbuf (); (That code is from memory, check for yourself to make sure i'm not telling lies.)