Добавляем водяные знаки (watermarks) для изображений 'на лету'

Небольшой урок по добавлению водяных знаков для картинок

Добавляем водяные знаки в Cotonti

Водяные знаки как первое средство защиты контента сайта требуются практически для любого монетизируемого или коммерческого сайта. Самое простое решение состоит в использовании особой функции наложения водяных знаков при загрузке изображений на сайт. Однако часто требование к установке вотермарков появляется когда на сайт уже загружены десятки или даже сотни изображений. В таких случаях можно использовать простое, но весьма эффективное решение.

Прежде всего, нам понадобится изображение с водяным знаком. Используем любой графический редактор для получения необходимой нам картинки с прозрачным фоном в формате 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 комментарий к посту «Добавляем водяные знаки (watermarks) для изображений 'на лету'»
  • Аватар

    1. Андрей @ 17 авг 2015 г. в 19:07

    Здравствуйте! Всё сделал по инструкции, но не срабатывает на сайте... Или это только для CMS Cotonti?

Новый комментарий

Для редактирования комментария осталось 10 минут