use strict; use warnings; use Time::HiRes 'time'; my $fn = 'test.tif'; { print "\tTesting Magick:\n"; use Image::Magick; my $img = Image::Magick-> new; $img-> Read( $fn ); for ( qw/ None LZW Zip /) { my $t = time; $img-> Set( compression => $_ ); my $blob = $img-> ImageToBlob; printf "Compression: %s \t Size: %d \t Time: %.2f\n", $_, length $blob, time - $t; } } { print "\tTesting Imager:\n"; use Imager; my $img = Imager-> new( file => $fn ); for ( qw/ none lzw zip /) { my $t = time; my $blob; $img-> write( data => \$blob, type => 'tiff', tiff_compression => $_ ); printf "Compression: %s \t Size: %d \t Time: %.2f\n", $_, length $blob, time - $t; } } __END__ Testing Magick: Compression: None Size: 30063788 Time: 0.20 Compression: LZW Size: 16156294 Time: 1.11 Compression: Zip Size: 13868590 Time: 11.86 Testing Imager: Compression: none Size: 30000294 Time: 0.32 Compression: lzw Size: 26470736 Time: 1.30 Compression: zip Size: 17199450 Time: 3.98