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