diff options
author | rvelices <rv-github@modusoptimus.com> | 2012-07-24 20:50:20 +0000 |
---|---|---|
committer | rvelices <rv-github@modusoptimus.com> | 2012-07-24 20:50:20 +0000 |
commit | 663f6273a714b4fc5468a1d6787d6a529fad1d60 (patch) | |
tree | b930c976c93fefe51e1cf07a9b58e4b7b30be424 | |
parent | 0bb3361cf1594d620bf82c4ac398a8340419ae1a (diff) |
bug 2682: Watermark sizing calculation is made on the requested size not on the final one (merge from trunk)
git-svn-id: http://piwigo.org/svn/branches/2.4@16990 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r-- | i.php | 9 | ||||
-rw-r--r-- | include/derivative.inc.php | 2 | ||||
-rw-r--r-- | include/derivative_params.inc.php | 11 |
3 files changed, 17 insertions, 5 deletions
@@ -104,6 +104,7 @@ function ierror($msg, $code) header('Request-URI: '.$url); header('Content-Location: '.$url); header('Location: '.$url); + ilog('WARN', $code, $url, $_SERVER['REQUEST_URI']); exit; } if ($code>=400) @@ -203,7 +204,7 @@ function parse_request() { preg_match($conf['sync_chars_regex'], $token) or ierror('Invalid chars in request', 400); } - + $page['derivative_path'] = PHPWG_ROOT_PATH.PWG_DERIVATIVE_DIR.$req; $pos = strrpos($req, '.'); @@ -452,7 +453,7 @@ SELECT * FROM '.$prefixeTable.'images WHERE path=\''.$page['src_location'].'\' ;'; - + if ( ($row=pwg_db_fetch_assoc(pwg_query($query))) ) { if (isset($row['width'])) @@ -464,7 +465,7 @@ SELECT * if (!isset($row['rotation'])) { $page['rotation_angle'] = pwg_image::get_rotation_angle($page['src_path']); - + single_update( $prefixeTable.'images', array('rotation' => pwg_image::get_rotation_code_from_angle($page['rotation_angle'])), @@ -540,7 +541,7 @@ if ($params->sharpen) $timing['sharpen'] = time_step($step); } -if ($params->use_watermark) +if ($params->will_watermark($d_size)) { $wm = ImageStdParams::get_watermark(); $wm_image = new pwg_image(PHPWG_ROOT_PATH.$wm->file); diff --git a/include/derivative.inc.php b/include/derivative.inc.php index d19b5a1b8..b89e39e3b 100644 --- a/include/derivative.inc.php +++ b/include/derivative.inc.php @@ -197,7 +197,7 @@ final class DerivativeImage { if ( $src->has_size() && $params->is_identity( $src->get_size() ) ) { - if (!$params->use_watermark && !$src->rotation) + if (!$params->will_watermark($src->get_size()) && !$src->rotation) { $params = null; $rel_path = $rel_url = $src->rel_path; diff --git a/include/derivative_params.inc.php b/include/derivative_params.inc.php index 3128e5fb2..b29255c53 100644 --- a/include/derivative_params.inc.php +++ b/include/derivative_params.inc.php @@ -281,5 +281,16 @@ final class DerivativeParams } return true; } + + function will_watermark($out_size) + { + if ($this->use_watermark) + { + $min_size = ImageStdParams::get_watermark()->min_size; + return $min_size[0]<=$out_size[0] + && $min_size[1]<=$$out_size[1]; + } + return false; + } } ?>
\ No newline at end of file |