From d7fef70c4c3707fd7650896c5a62f0a7c5cc81f0 Mon Sep 17 00:00:00 2001 From: modus75 Date: Thu, 15 Oct 2015 22:05:20 +0200 Subject: fix #361 - Watermark Y repeat --- admin/configuration.php | 3 ++- .../configuration_watermark_process.inc.php | 2 ++ .../default/template/configuration_watermark.tpl | 7 +++++++ i.php | 22 ++++++++++++++-------- include/derivative_std_params.inc.php | 2 ++ language/en_UK/admin.lang.php | 1 + 6 files changed, 28 insertions(+), 9 deletions(-) diff --git a/admin/configuration.php b/admin/configuration.php index e7e6033c8..f363021f8 100644 --- a/admin/configuration.php +++ b/admin/configuration.php @@ -578,7 +578,7 @@ switch ($page['section']) $position = 'bottomright'; } - if ($wm->xrepeat != 0) + if ($wm->xrepeat != 0 || $wm->yrepeat != 0) { $position = 'custom'; } @@ -592,6 +592,7 @@ switch ($page['section']) 'xpos' => $wm->xpos, 'ypos' => $wm->ypos, 'xrepeat' => $wm->xrepeat, + 'yrepeat' => $wm->yrepeat, 'opacity' => $wm->opacity, 'position' => $position, ) diff --git a/admin/include/configuration_watermark_process.inc.php b/admin/include/configuration_watermark_process.inc.php index ad23d92a2..2eeb381af 100644 --- a/admin/include/configuration_watermark_process.inc.php +++ b/admin/include/configuration_watermark_process.inc.php @@ -126,6 +126,7 @@ if (count($errors) == 0) $watermark->xpos = intval($pwatermark['xpos']); $watermark->ypos = intval($pwatermark['ypos']); $watermark->xrepeat = intval($pwatermark['xrepeat']); + $watermark->yrepeat = intval($pwatermark['yrepeat']); $watermark->opacity = intval($pwatermark['opacity']); $watermark->min_size = array(intval($pwatermark['minw']),intval($pwatermark['minh'])); @@ -135,6 +136,7 @@ if (count($errors) == 0) || $watermark->xpos != $old_watermark->xpos || $watermark->ypos != $old_watermark->ypos || $watermark->xrepeat != $old_watermark->xrepeat + || $watermark->yrepeat != $old_watermark->yrepeat || $watermark->opacity != $old_watermark->opacity; // save the new watermark configuration diff --git a/admin/themes/default/template/configuration_watermark.tpl b/admin/themes/default/template/configuration_watermark.tpl index 11343057d..24e2a346e 100644 --- a/admin/themes/default/template/configuration_watermark.tpl +++ b/admin/themes/default/template/configuration_watermark.tpl @@ -111,6 +111,13 @@ {if isset($ferrors.watermark.xrepeat)}!{/if} + +
+ + diff --git a/i.php b/i.php index 0f242cf2d..3666eb5c5 100644 --- a/i.php +++ b/i.php @@ -575,17 +575,23 @@ if ($params->will_watermark($d_size)) if ($image->compose($wm_image, $x, $y, $wm->opacity)) { $changes++; - if ($wm->xrepeat) + if ($wm->xrepeat || $wm->yrepeat) { - // todo - $pad = $wm_size[0] + max(30, round($wm_size[0]/4)); + $xpad = $wm_size[0] + max(30, round($wm_size[0]/4)); + $ypad = $wm_size[1] + max(30, round($wm_size[1]/4)); + for($i=-$wm->xrepeat; $i<=$wm->xrepeat; $i++) { - if (!$i) continue; - $x2 = $x + $i * $pad; - if ($x2>=0 && $x2+$wm_size[0]<$d_size[0]) - if (!$image->compose($wm_image, $x2, $y, $wm->opacity)) - break; + for($j=-$wm->yrepeat; $j<=$wm->yrepeat; $j++) + { + if (!$i && !$j) continue; + $x2 = $x + $i * $xpad; + $y2 = $y + $j * $ypad; + if ($x2>=0 && $x2+$wm_size[0]<$d_size[0] && + $y2>=0 && $y2+$wm_size[1]<$d_size[1] ) + if (!$image->compose($wm_image, $x2, $y2, $wm->opacity)) + break; + } } } } diff --git a/include/derivative_std_params.inc.php b/include/derivative_std_params.inc.php index a0f1edb76..9fe4c3b02 100644 --- a/include/derivative_std_params.inc.php +++ b/include/derivative_std_params.inc.php @@ -52,6 +52,8 @@ final class WatermarkParams /** @var int */ public $xrepeat = 0; /** @var int */ + public $yrepeat = 0; + /** @var int */ public $opacity = 100; } diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php index 218c09661..272d2bf63 100644 --- a/language/en_UK/admin.lang.php +++ b/language/en_UK/admin.lang.php @@ -931,6 +931,7 @@ $lang['wrong filename'] = "wrong filename"; $lang['X Position'] = 'X Position'; $lang['X Repeat'] = 'X Repeat'; $lang['Y Position'] = 'Y Position'; +$lang['Y Repeat'] = 'Y Repeat'; $lang['Year'] = "Year"; $lang['You are running on development sources, no check possible.'] = "You are running on development sources, no check possible."; $lang['You are running the latest version of Piwigo.'] = "You are running Piwigo latest version."; -- cgit v1.2.3