my $width = $pic_cur ->{Width}; my $height = $pic_cur ->{Height}; my $aspect = $height / $width; my $max_height = 100; my $max_width = 200; my $new_width = $max_width; my $new_height = $max_width * $aspect; if($new_height > $max_height) { # too high, so reduce width < max_width $new_height = $max_height; $new_width = $new_height / $aspect; } # else: height <= max_height