diff options
author | zotlabs <mike@macgirvin.com> | 2017-11-21 19:47:59 -0800 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2017-11-21 19:47:59 -0800 |
commit | b4f8f4df7bc5cc8a74240506cd536224cb31e114 (patch) | |
tree | a88c45c92843703049a91cf7b4ab4e374b52de97 | |
parent | 98e2b2a60b8be14627b31212b6ad148c5d3bd4b5 (diff) | |
download | volse-hubzilla-b4f8f4df7bc5cc8a74240506cd536224cb31e114.tar.gz volse-hubzilla-b4f8f4df7bc5cc8a74240506cd536224cb31e114.tar.bz2 volse-hubzilla-b4f8f4df7bc5cc8a74240506cd536224cb31e114.zip |
allow toggle to 'SMBC' scaling mode. 'SMBC' mode is named thusly for Saturday Morning Breakfast Cereal cartoons which are very tall. If you scale the image to constrain both dimensions, the cartoon text is illegible. So we allow the height to float and only constrain the width. The new flag allows you to overide this mode and force both dimensions to always be evaluated and constrained to the provided limit.
-rw-r--r-- | include/photo/photo_driver.php | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php index f75ff2386..6af753195 100644 --- a/include/photo/photo_driver.php +++ b/include/photo/photo_driver.php @@ -129,7 +129,14 @@ abstract class photo_driver { return $this->types[$this->getType()]; } - public function scaleImage($max) { + /** + * @brief scale image + * int $max maximum pixel size in either dimension + * boolean $float_height - if true allow height to float to any length on tall images, + * constraining only the width + */ + + public function scaleImage($max, $float_height = true) { if(!$this->is_valid()) return FALSE; @@ -146,7 +153,7 @@ abstract class photo_driver { // very tall image (greater than 16:9) // constrain the width - let the height float. - if((($height * 9) / 16) > $width) { + if(((($height * 9) / 16) > $width) && ($float_height)) { $dest_width = $max; $dest_height = intval(( $height * $max ) / $width); } @@ -173,7 +180,7 @@ abstract class photo_driver { // very tall image (greater than 16:9) // but width is OK - don't do anything - if((($height * 9) / 16) > $width) { + if(((($height * 9) / 16) > $width) && ($float_height)) { $dest_width = $width; $dest_height = $height; } |