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 #### use strict; use warnings; use Time::HiRes 'time'; use GD; my $t = time; my $i = GD::Image-> newFromJpeg( 'file.jpg', 1 ); printf "image dimensions: %d x %d\n", $i-> getBounds; printf "reading: %.2f s\n", time - $t; for ( 1 .. 20, 22, 23 ) { $t = time; $i-> interpolationMethod( $_ ); $i-> copyScaleInterpolated( 750, 572 ) -> _file( 'file+.jpg' ); printf "resize method \"$_\" & save: %.2f s\n", time - $t; } $t = time; $i-> copyRotateInterpolated( 90, 0 )-> _file( 'file+.jpg' ); printf "rotate & save: %.2f s\n", time - $t; __END__ image dimensions: 6083 x 4636 reading: 1.47 s resize method "1" & save: 0.59 s resize method "2" & save: 0.62 s resize method "3" & save: 0.07 s resize method "4" & save: 0.25 s resize method "5" & save: 0.24 s resize method "6" & save: 0.55 s resize method "7" & save: 0.53 s resize method "8" & save: 0.55 s resize method "9" & save: 0.55 s resize method "10" & save: 0.55 s resize method "11" & save: 0.53 s resize method "12" & save: 0.55 s resize method "13" & save: 0.55 s resize method "14" & save: 0.55 s resize method "15" & save: 0.53 s resize method "16" & save: 0.04 s resize method "17" & save: 0.54 s resize method "18" & save: 0.58 s resize method "19" & save: 0.62 s resize method "20" & save: 0.59 s resize method "22" & save: 0.09 s resize method "23" & save: 0.12 s rotate & save: 3.03 s