aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2017-11-21 19:47:59 -0800
committerzotlabs <mike@macgirvin.com>2017-11-21 19:47:59 -0800
commitb4f8f4df7bc5cc8a74240506cd536224cb31e114 (patch)
treea88c45c92843703049a91cf7b4ab4e374b52de97
parent98e2b2a60b8be14627b31212b6ad148c5d3bd4b5 (diff)
downloadvolse-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.php13
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;
}