use strict; use warnings; use Time::HiRes 'time'; use Imager; my $t = time; my $i = Imager-> new( file => 'file.jpg' ); printf "image dimensions: %d x %d\n", $i-> getwidth, $i-> getheight; printf "reading: %.2f s\n", time - $t; $t = time; $i-> copy -> scale( xpixels => 750, qtype => 'normal' ) -> write( file => 'file+.jpg' ); printf "high quality resize & save: %.2f s\n", time - $t; $t = time; $i-> copy -> scale( xpixels => 750, qtype => 'mixing' ) -> write( file => 'file+.jpg' ); printf "medium quality resize & save: %.2f s\n", time - $t; $t = time; $i-> copy -> scale( xpixels => 750 * 4, qtype => 'mixing' ) -> scale( xpixels => 750, qtype => 'normal' ) -> write( file => 'file+.jpg' ); printf "medium+ quality resize & save: %.2f s\n", time - $t; $t = time; $i-> copy -> scale( xpixels => 750, qtype => 'preview' ) -> write( file => 'file+.jpg' ); printf "low quality resize & save:\t\t %.2f s\n", time - $t; $t = time; $i-> copy -> rotate( right => -90 ) -> write( file => 'file+.jpg' ); printf "fast rotate & save: %.2f s\n", time - $t; $t = time; $i-> copy -> rotate( degrees => -90 ) -> write( file => 'file+.jpg' ); printf "slow rotate & save: %.2f s\n", time - $t; __END__ image dimensions: 6083 x 4636 reading: 1.23 s high quality resize & save: 6.52 s medium quality resize & save: 1.17 s medium+ quality resize & save: 3.84 s low quality resize & save: 0.58 s fast rotate & save: 3.41 s slow rotate & save: 19.33 s