Seditio.by

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

Seditio.by » Наш блог » Разное » Добавляем водяные знаки (watermarks) для изображений "на лету"

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

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

Прежде всего, нам понадобится изображение с водяным знаком. Используем любой графический редактор для получения необходимой нам картинки с прозрачным фоном в формате 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/ по соответствующей маске. Правила можно расширить для других масок или сузить до всех графических файлов.

 

Комментарии


1. killerbee
06:56 13.10.2011

Спасибо за полезную инфу! У меня больше тысячи картинок, и у всех теперь вотермарки)


Всего : 1, на странице: 1

Имя (E-mail):
* Ваш комментарий будет доступен для редактирования в течение 10 Минут

Похожие страницы

    Нет записей

    Поиск: