Наложение водяных знаков

  1. Главная
  2. Блог
  3. Программирование
  4. Наложение водяных знаков

Часто возникает необходимость защитить изображения на сайте от копирования (подробнее почему важно иметь уникальный контент и, в частности, изображения вы можете прочитать у нас на блоге). Существует несколько способов защиты изображений от копирования, но самый правильный, на мой взгляд, защита изображения с помощью водяного знака. Этот способ является наименее раздражающим для обычного пользователя (в отличие от использования всякого рода javascript-решений для блокировки правой кнопки мыши или подобных ему), а это в свою очередь положительно влияет на формирование поведенческих факторов на сайте (что такое поведенческие факторы, и с чем их едят вы можете узнать здесь).

Скрипт для добавления водяных знаков

Скрипт, приведенный ниже, позволяет устанавливать водяные знаки для любого изображения на сайтах, которые базируются на php+apache (общую логику скрипта легко портировать на другие платформы). Для начала нам понадобится обрабатывать изображения. Для этого создадим в корневой директории сайта папку wmimg и поместим туда файл wmimg.php с таким содержанием:

 250) && ($origSize[1] > 250) ) //Показываем водяной знак только на изображениях больше чем 250х250px
 {
 //Ставим водяной знак по центру и задаем НЕпрозрачность 20% (чем больше последняя цифра, тем НЕпрозрачнее марка)
 imageCopyMerge($outImg, $wmImg, ($origSize[0]-$wmSize[0])/2, ($origSize[1]-$wmSize[1])/2, 0, 0, $wmSize[0], $wmSize[1], 20);
 }
 switch ($origSize[2])
 {
 case 1:
 imageGIF($outImg);
 break;
 case 2:
 imageJPEG($outImg);
 break;
 case 3:
 imagePNG($outImg);
 break;
 default:
 return false;
 }
 //Убиваем временные данные (обязательно)
 imageDestroy($outImg);
 imageDestroy($origImg);
 imageDestroy($wmImg);
 return true;
}
?>

Обработчик добавляет watermark в центр изображения и задает ему прозрачность 80% (непрозрачность 20%). В ту же папку необходимо поместить изображение водяного знака wmimg.png, на этом настройка обработки изображений закончена. Осталось определить с какими именно изображениями на сервере будет работать скрипт. Всю статичную информацию пользователю отдает сервер apache, в том числе и изображения, ему и определять какие изображения обрабатывать. Для этого в каждую папку с изображениями, на которые будет помещена марка, следует поместить файл .htaccess следующего содержания:



SetHandler text/plain
ForceType text/plain



php_flag engine off


 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} -f
 RewriteRule ^(.*)$ /wmimg/wmimg.php [T=application/x-httpd-php,L,QSA]

На этом добавление и наложение водяных знаков полностью закончено. Плюсы такого подхода:

  • исходное изображение не меняется;
  • легко поменять изображение для водяного знака;
  • данные отдаваемые апачем кешируются (снижается нагрузка на сервер);
  • в браузере данные тоже находятся в закешированном состоянии;
  • при сохранении/открытии в другой вкладке и т.д. водяной знак не исчезает.

Надеемся данный скрипт будет полезен, и вам больше не придется тратить кучу времени накладывая водяные знаки в фотошопе или другом графическом редакторе. Вопросы по работе скрипта и свои мысли по поводу данной статьи пишите в комментариях.

Понравилось? Репост!

Читайте также

Оксана
Полезная статья!Если у меня получиться сделать это на своём сайте,это сэкономит время дизайнера и оптимизирует работу.Хоть время свободное появится.Будут вопросы по реализации-обязательно задам,если что не получится!
Максим Нарижный
Здравствуйте! Попробуйте прозрачность от 10% до 30%. Все зависит от того какой копирайт и какие изображения. К примеру на темном фоне достаточно будет и 10. Главное что бы очень сильно не отвлекало от самого изображения, и в тоже время его было сложно убрать. Если копирайт белый можно добавить небольшую тень, что бы при попадании на белый фон, копирайт не сливался, но главное не переборщить. Для ориентира посмотрите как это сделано на платных фотобанках.