[FreeWare] Водяной знак для (watermark)

Тема в разделе "SEO Скрипты", создана пользователем Rodin, 17 май 2011.

  1. Rodin

    Rodin

    Регистр.:
    27 апр 2007
    Сообщения:
    227
    Симпатии:
    166
    С помощью данного скрипта, вы сможете накладывать собственное изображение (watermark) на ваш скриншот. Скрипт был адаптирован для Каталога файлов, но изменить его для другого модуля - не проблема.

    Для начала в модуле Каталог файлов активируем след.поля

    Web-site автора материала
    Ссылка на источник материала

    На страницу добавления/редактирования материала каталога файлов, после $BODY$:

    HTML:
    <script type="text/javascript">  
      site = 'http://'+location.href.split('/')[2]; // получаем ссылку на сайт  
      idname = 'ldF15'; // поле для вставки полученной ссылки на скриншот  
      idname2 = 'ldM46';  
      $('#ldM47').text('Ссылка на скриншот:');  
      </script>  
      <script type="text/javascript" src="http://uweb.su/js/u_watermark.js"></script>  
      <div style="display:none;" id="resImg"></div>  
      <style type="text/css">  
      #buttonload{background:#f1f1f1;padding:3px;border:1px solid #c1bfbf;margin-left:7px;color:#4f4d4d;}  
      </style>

    http://letitbit.net/download/55293.5ed0f894cdaa6dd6f8aa0a60552b/watermark.rar.html
    http://depositfiles.com/files/xcye8c4iq
    http://turbobit.net/w44vbqhoswwj.html
     
    Ferz и plati нравится это.
  2. OpS87

    OpS87

    Регистр.:
    9 авг 2011
    Сообщения:
    175
    Симпатии:
    15
    Запрашиваемый файл не найден
    File not found
    Перезалейте ссылку!
     
  3. AsD_SY

    AsD_SY Постоялец

    Регистр.:
    12 окт 2008
    Сообщения:
    124
    Симпатии:
    61
    OpS87 нравится это.
  4. 4ehka

    4ehka Писатель

    Регистр.:
    20 сен 2012
    Сообщения:
    2
    Симпатии:
    0
    а не подскажете хороший плагин watermark для Wordpress?
     
  5. Muravei

    Muravei Создатель

    Регистр.:
    21 сен 2012
    Сообщения:
    37
    Симпатии:
    12
     
  6. Nestand

    Nestand Создатель

    Регистр.:
    27 авг 2006
    Сообщения:
    23
    Симпатии:
    5
    Вот интересная тема про водяные знаки
     
  7. fixit

    fixit Писатель

    Регистр.:
    2 сен 2011
    Сообщения:
    5
    Симпатии:
    0
    По мне, для уникализации картинки лучше всего использовать php библиотеку imagemagick и очень важно поворачивать фотографию от 10 до 15 градусов и обрезать если важно получить большой процент уникальности.
     
  8. travel777

    travel777 Писатель

    Регистр.:
    24 ноя 2012
    Сообщения:
    5
    Симпатии:
    0
    а с чего вы взяли что поворот на Х градусов делает картинку уникальной?
    http://www.tineye.com/ попробуйте загрузить сюда популярную картинку, и увидете ее на разных ресурсах с измененными цветами, поворотом на Х градусов, зум, яркость и т.п.
     
  9. Ferz

    Ferz Создатель

    Регистр.:
    5 ноя 2012
    Сообщения:
    9
    Симпатии:
    0
    Как-то давно искал, но потом забыл про него, и о чюдо, нашел здесь, даже не думал то, что найду здесь что-то для ucoz =)
     
  10. brus46

    brus46 Постоялец

    Регистр.:
    3 мар 2013
    Сообщения:
    58
    Симпатии:
    8
    Рабочий вариант для любых сайтов на php, работает 100%

    Создаем в корневой директории папку watermark. В ней 3 файла:

    watermark.php
    Код:
    <?php
    
    // Путь до файла с оригинальным изображением
    $path = $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'];
    $nameImage = end(explode('/', $_SERVER['REQUEST_URI'])); // Имя изображения
    $nameImageId = md5($path) . $nameImage;
    
    // Проверяем дату для рефреша кеша
    $dateImage = filemtime($path);
    $dateImageCache = @filemtime($_SERVER['DOCUMENT_ROOT'] . "/watermark/cache/" . $nameImageId);
    
    //Устанавливаем качество (вес) картинки на выходе
    $quality = 100;
    
    if(file_exists('cache/' . $nameImageId) && $dateImage < $dateImageCache)
    {
        $image = imagecreatefromstring(file_get_contents('cache/' . $nameImageId));
        header('Content-type: image/jpeg');
        imagejpeg($image, NULL, $quality);
        exit();
    }
    else // Если же нет такой картинки в кэше
    {
        // Загружаем оригинальное изображение
        $image = imagecreatefromstring(file_get_contents($path));
       
        // Получаем ширину и высоту оригинально изображения
        $w = imagesx($image);
        $h = imagesy($image);
    
        // Загружаем изображение с водяным знаком
        $watermark = imagecreatefrompng('watermark.png');
    
        //Вместо 200 можете поставить свое значение, это размер для маленьких фото для них будет использоваться маленький ватермарк
        if($w == 200)
        {
            $watermark = imagecreatefrompng('watermark_m.png');
        }
    
        // Получаем ширину и высоту водяного знака
        $ww = imagesx($watermark);
        $wh = imagesy($watermark);
       
        // Соединяем оригинальное изображение и водяной знак.(водяной знак будет расположен в центре изображения).
        imagecopy($image, $watermark, (($w/2)-($ww/2)), (($h/2)-($wh/2)), 0, 0, $ww, $wh);
       
        imagealphablending($image, false);
        imagesavealpha($image, true); // Устанавливаем прозрачность для png файла
    
        //Изменив значение 100, вы можете снизить качество получаемого фото
        imagejpeg($image, 'cache/' . $nameImageId, $quality);
        header('Content-type: image/jpeg');
        imagejpeg($image, NULL, $quality);
        exit();
    }
    ?>
    
    и две png картинки с самим водяным знаком, одна для наложения на большие изображения - watermark.png, другая на миниатюры - watermark_m.png (у меня они соответственно размером 301х100 и 100х33 пикселей)

    в директорию, содержащую картинки, на которые хотим накладывать водяной знак, кладем

    .htaccess
    Код:
    <IfModule mod_access.c>
    Order allow,deny
    Allow from all
    </IfModule>
    
    DirectoryIndex index.php
    
    <FilesMatch "\.(gif|jpg|jpeg|png|JPG)$">
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -f
    # Внимание! Путь к файлу watermark.php, вставте свой вместо папки watermark.
    RewriteRule \.(gif|jpeg|jpg|png|JPG)$ /watermark/watermark.php [T=application/x-httpd-php,L,QSA]
    </FilesMatch>
    
    В папке watermark создаем папку cache.
    В этом, пожалуй, самое главное отличие этого скрипта от аналогичных. Он создает в кэше изображения с уже наложенным водяным знаком и в момент обращения к картинке отдает уже сгенерированую из папки cache, тем самым не накладывая watermark на лету и не нагружая сервер.

    Положение водяного знака относительно картинки можно менять:
    Код:
    // Справа сверху
    imagecopy($image, $watermark, $w-$ww, 0, 0, 0, $ww, $wh);
    
    // В центре слева
    imagecopy($image, $watermark, 0, (($h/2)-($wh/2)), 0, 0, $ww, $wh);
    
    // В центре
    imagecopy($image, $watermark, (($w/2)-($ww/2)), (($h/2)-($wh/2)), 0, 0, $ww, $wh);
    
    // В центре справа
    imagecopy($image, $watermark, $w-$ww, (($h/2)-($wh/2)), 0, 0, $ww, $wh);
    
    // Снизу слева
    imagecopy($image, $watermark, 0, $h-$wh, 0, 0, $ww, $wh);
    
    // Снизу в центре
    imagecopy($image, $watermark, (($w/2)-($ww/2)), (($h)-($wh)), 0, 0, $ww, $wh);
    
    // Снизу справа
    imagecopy($image, $watermark, $w-$ww, $h-$wh, 0, 0, $ww, $wh);
    
     
    Последнее редактирование: 25 мар 2015