
Водяные знаки как первое средство защиты контента сайта требуются практически для любого монетизируемого или коммерческого сайта. Самое простое решение состоит в использовании особой функции наложения водяных знаков при загрузке изображений на сайт. Однако часто требование к установке вотермарков появляется когда на сайт уже загружены десятки или даже сотни изображений. В таких случаях можно использовать простое, но весьма эффективное решение.
Прежде всего, нам понадобится изображение с водяным знаком. Используем любой графический редактор для получения необходимой нам картинки с прозрачным фоном в формате PNG-24. Назовем ее watermark.png.
Теперь главное. Создаем файл watermark.php со следующим содержимым:
<?php
// Insert watermarks on the fly
// Requested file path
$path = $_GET['path'];
$realpath = realpath('../../../'.$path);
// Check path and extension
if (strpos($realpath, $_SERVER['DOCUMENT_ROOT']) === FALSE || !preg_match('#\.(gif|jpeg|jpg|png)$#i', $path))
{
header('HTTP/1.1 403 Forbidden');
echo '<h1>Forbidden</h1>';
exit;
}
// Load the image
$image = imagecreatefromstring(file_get_contents($realpath));
$w = imagesx($image);
$h = imagesy($image);
// Load the watermark
$watermark = imagecreatefrompng('watermark.png');
$ww = imagesx($watermark);
$wh = imagesy($watermark);
// Insert watermark to the right bottom corner
imagecopy($image, $watermark, $w-$ww, $h-$wh, 0, 0, $ww, $wh);
// ... or to the image center
// imagecopy($image, $watermark, (($w/2)-($ww/2)), (($h/2)-($wh/2)), 0, 0, $ww, $wh);
// Send the image
header('Content-type: image/jpeg');
imagejpeg($image,null,95);
exit();
?>
Загрузим файлы watermark.php и watermark.png в корневой каталог сайта и откроем для редактирования файл .htaccess. Добавим в него следующие строки:
RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^datas/photos/page_([0-9]+)\.(gif|jpeg|jpg|png)$ watermark.php [QSA,NC]
Данное правило будет добавлять водяной знак к изображениям из каталога ./datas/photos/ по соответствующей маске. Правила можно расширить для других масок или сузить до всех графических файлов.
Заинтересовались? Звоните нам по телефонам +375 (29) 774-35-89 и +375 (44) 774-35-89 в Минске. Мы будем рады помочь Вам в реализации Вашего проекта.
1. Андрей @ 17 авг 2015 г. в 19:07
Здравствуйте! Всё сделал по инструкции, но не срабатывает на сайте... Или это только для CMS Cotonti?