diff options
Diffstat (limited to 'lib/VNDBUtil.pm')
-rw-r--r-- | lib/VNDBUtil.pm | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/VNDBUtil.pm b/lib/VNDBUtil.pm index 6d4d437e..3060b75b 100644 --- a/lib/VNDBUtil.pm +++ b/lib/VNDBUtil.pm @@ -7,7 +7,7 @@ use warnings; use Exporter 'import'; use Unicode::Normalize 'NFKD'; -our @EXPORT = qw|shorten bb2html gtintype normalize normalize_titles normalize_query|; +our @EXPORT = qw|shorten bb2html gtintype normalize normalize_titles normalize_query imgsize|; sub shorten { @@ -200,5 +200,22 @@ sub normalize_query { } +# arguments: <image size>, <max dimensions> +# returns the size of the thumbnail with the same aspect ratio as the full-size +# image, but fits within the specified maximum dimensions +sub imgsize { + my($ow, $oh, $sw, $sh) = @_; + return ($ow, $oh) if $ow <= $sw && $oh <= $sh; + if($ow/$oh > $sw/$sh) { # width is the limiting factor + $oh *= $sw/$ow; + $ow = $sw; + } else { + $ow *= $sh/$oh; + $oh = $sh; + } + return ($ow, $oh); +} + + 1; |