Добавляем водяной знак (Watermark) для изображений. Делается это для защиты авторских прав, дополнительного упоминания сайта, либо логотипа.
Плагин Easy Watermark
Идем в настройки и выставляем параметры которые нас интересуют. Если водяные знаки нужны только для изображений загружаемых в запись в разделе Типы записей надо оставить галку только в пункте Записи.
Изображение для водяного знака желательно заранее адаптировать до нужного размера. И в настройках изображения выставить выравнивание, масштаб, отступы и прозрачность.
Можно сгенерировать watermark в ранее загруженных изображениях. Для этого надо перейти в подменю Медиафайлы > Easy Watermark и нажать Start.
Данный плагин лучше начинать использовать вначале наполнения сайта.
Водяной знак без плагина
Данный метод будет формировать водяной знак на лету, при формировании страницы. Но при этом делает это довольно быстро.
В корневой директории сайта создаем папку watermark в нее помещаем два файла: изображение водяного знака — watermark.png (уже нужного размера, можно полупрозрачным) и файл watermark.php
Содержимое файла watermark.php, жирным отмечено в хронологии:
Выравнивание и отступы
Не применять данную функцию к изображениям меньше 500px по ширине, и по высоте
<? waterMark($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'], "watermark.png", "bottom=20,right=15"); function waterMark($original, $watermark, $placement = 'bottom=5,right=5', $destination = null) { $original = urldecode($original); $info_o = @getImageSize($original); if (!$info_o) return false; $info_w = @getImageSize($watermark); if (!$info_w) return false; list ($vertical, $horizontal) = split(',', $placement,2); list($vertical, $sy) = split('=', trim($vertical),2); list($horizontal, $sx) = split('=', trim($horizontal),2); switch (trim($vertical)) { case 'bottom': $y = $info_o[1] - $info_w[1] - (int)$sy; break; case 'middle': $y = ceil($info_o[1]/2) - ceil($info_w[1]/2) + (int)$sy; break; default: $y = (int)$sy; break; } switch (trim($horizontal)) { case 'right': $x = $info_o[0] - $info_w[0] - (int)$sx; break; case 'center': $x = ceil($info_o[0]/2) - ceil($info_w[0]/2) + (int)$sx; break; default: $x = (int)$sx; break; } header("Content-Type: ".$info_o['mime']); $original = @imageCreateFromString(file_get_contents($original)); $watermark = @imageCreateFromString(file_get_contents($watermark)); $out = imageCreateTrueColor($info_o[0],$info_o[1]); imageCopy($out, $original, 0, 0, 0, 0, $info_o[0], $info_o[1]); if( ($info_o[0] > 500) && ($info_o[1] > 500) ) { imageCopy($out, $watermark, $x, $y, 0, 0, $info_w[0], $info_w[1]); } switch ($info_o[2]) { case 1: imageGIF($out, NULL, 100); break; case 2: imageJPEG($out, NULL, 100); break; case 3: imagePNG($out, NULL, 100); break; } imageDestroy($out); imageDestroy($original); imageDestroy($watermark); return true; } ?>
В директорию к изображениям из которой требуется добавлять ВЗ (скорее всего папка uploads) добавляем файл .htaccess с кодом
DirectoryIndex index.php <FilesMatch "\.(jpg|jpeg|JPG)$"> RewriteEngine On RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^(.*)$ /watermark/watermark.php [T=application/x-httpd-php,L,QSA] </FilesMatch>
Можно указать любые расширения изображений для добавления WM форматы — gif, png, jpg, JPG, jpeg и т.д.