my $gd = $image->gd; my( undef, $width, $height, undef, undef ) = unpack 'nnnCV', substr( $gd, 0, 11, '' ); my $len = length( $gd ) / 4 * 3; my $bmp = pack 'a2 V V V l< l< l< v v V V l< l< V V', 'BM', $len + 54, 0, 54, 40, $width, -$height, 1, 24, 0, $len, 0, 0, 0; $bmp .= join'', unpack '(xaaa)*', $gd;