Водяной знак на фото без плагинов

Водяной знак на фотографии

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

Накладываем водяной знак на фото без плагинов

Для начала вам нужно создать файл watermark.png, который и будет в дальнейшем вашим водяным знаком. Вы можете самостоятельно нарисовать его в фотошопе. После того как вы его создадите, этот файл нужно загрузить на ваш сайт. Для этого создайте в корневом каталоге сайта папку watermark и загрузите в нее ваш файл watermark.png.

Затем создаем файл watermark.php и наполняем его следующим кодом:

<?
waterMark($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'],
 "watermark.png", "bottom=5,right=5"); 

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]); 

//Здесь задаем размер изображения в которые можно добавлять Watermark
//	$info_o[0] > 250
//	$info_o[1] > 250

   if( ($info_o[0] > 50) && ($info_o[1] > 50) )
   {
   imageCopy($out, $watermark, $x, $y, 0, 0, $info_w[0], $info_w[1]);
   }

   switch ($info_o[2]) {
      case 1:
         imageGIF($out);
         break;
      case 2:
         imageJPEG($out);
         break;
      case 3:
         imagePNG($out);
         break;
         } 

   imageDestroy($out);
   imageDestroy($original);
   imageDestroy($watermark); 

   return true;
   }
?>

Сохраняем этот файл и загружаем в ту же папку с вашим фодяным знаком /watermark.

И финальное действие. Создаем файл .htaccess и добавляем в него следующее содержимое:

DirectoryIndex index.php
<FilesMatch ".(gif|jpg|png)$">
   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} -f
   RewriteRule ^(.*)$ /watermark/watermark.php [T=application/x-httpd-php,L,QSA]
</FilesMatch>

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