[Помогите] Водяные знаки на картинках

Тема в разделе "Wordpress", создана пользователем disker, 7 июн 2011.

Статус темы:
Закрыта.
Модераторы: Sorcus
  1. disker

    disker

    Регистр.:
    28 авг 2007
    Сообщения:
    550
    Симпатии:
    58
    Собственно как лучше всего это организовать. С одной стороны не хочется подключать дополнительный плагин, но локально каждый раз накладывать водяные знаки на картинки тоже не хочется - очень много времени будет отнимать, поэтому всё же плагин, наверное будет лучшим выходом из сложившейся ситуации. Искал какие-то плагины для этого дела, но все какие-то кривые. То слишком давно последний раз обновлялись, то ещё что-то (слишком тяжёлый например). С вордпрессом работаю недавно, поэтому и создал тему. Вобщем если есть у кого опыт работы с "водянками", бросьте советом в меня :)

    З.ы. в качестве водяного знака предполагается использовать название сайта, то есть site.ru , как бы...
     
  2. Versus71

    Versus71 Постоялец

    Регистр.:
    21 дек 2009
    Сообщения:
    97
    Симпатии:
    18
    Ты отпишись какие конкретно плагины из которых ты пробовал, тебя не устроили. Чтобы тебе их по несколько раз не советовали.
     
  3. dimalyk

    dimalyk Создатель

    Регистр.:
    4 июн 2011
    Сообщения:
    11
    Симпатии:
    1
    Вот что нашел -
    http://n-wp.ru/1682

    Пробовал?
     
  4. iskif

    iskif

    Регистр.:
    21 авг 2006
    Сообщения:
    325
    Симпатии:
    35
    ну, во-первых, генерация водяного знака "на лету" создаёт повышенную нагрузку на сервер
    а во вторых, в таком варианте всё равно ничего не мешает посмотреть путь до картинки и сохранить её себе без знака.

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

    я же для себя использую программу xnview - один раз настроил пакетную обработку и теперь пачку картинок перед выкладкой обрабатываю 5 сек.
     
  5. disker

    disker

    Регистр.:
    28 авг 2007
    Сообщения:
    550
    Симпатии:
    58
    уже не помню названия, месяца 3 тому как игрался и тогда за ненадобностю не придал им значения
    вроде нет, попробую отпишусь.. Upd. Посмотрел, вроде ничего, но какой принцип работы этого плагина? Он на лету ставит водяные знаки или при загрузке картинок на сервер. Если первое, то он мне не подходит.
    Вот собственно такой плагин и ищу
     
  6. artursn

    artursn Создатель

    Регистр.:
    27 дек 2007
    Сообщения:
    15
    Симпатии:
    0
    млжно написать скрипт, который будет сканировать папку и добовлять ватермак или при заливке картинке подправить функцию. я бы сделал крон и по крону накладывал.
     
  7. disker

    disker

    Регистр.:
    28 авг 2007
    Сообщения:
    550
    Симпатии:
    58
    Можно, только вопрос : зачем изобретать велосипед. Но если тебе так хочется, то сделай и выложи сюда.
    P.s. и не забудь, что с каждым выходом новой версии вордпресса скрипт может перестать работать, поэтому его нужно будет постоянно тестить ...
     
  8. domens

    domens Постоялец

    Регистр.:
    28 авг 2009
    Сообщения:
    143
    Симпатии:
    4
    я использую Super Image Plugin. он сразу ставит знак при загрузке картинки на хост. работает с Wordpress 3.1
     
  9. KLenin

    KLenin Писатель

    Регистр.:
    3 июн 2009
    Сообщения:
    8
    Симпатии:
    1
    Super Image Plugin, неплох, но немного глючноват, однажды заметил что не хочет добавлять вотермарк на определенную картинку, проблема была в ее имени, следите чтоб имена картинок не повторялись(имею ввиду если вы когда то залили картинку 1.джпег а потом удалили, и опять повторно залили, то вотемарк не проставитса пока вы ее не зальете с 2-м названием). Вобщем плагин стар и со своими минусами, но если грамотно использовать - роботу выполняет.
     
  10. BFox

    BFox

    Регистр.:
    11 янв 2008
    Сообщения:
    368
    Симпатии:
    65

    Испольую такое решение создаем файл watermark.php в корне
    PHP:
    <?                                                                                                                                                                                                         
    $src $_GET['src'];                                                                                                                                                                                       
     
    header('Content-type: image/jpeg');                                                                                                                                                                       
      
    //this will prevent the watermark from showing up in the thumbnail images                                                                                                                                
      
    if (eregi("150x150"$src)) {                                                                                                                                                                            
       
    $watermark imagecreatefrompng('empty.png');                                                                                                                                                           
       } else {                                                                                                                                                                                                
        
    $watermark imagecreatefrompng('watermark.png');                                                                                                                                                      
        }                                                                                                                                                                                                      
        
    $watermark_width imagesx($watermark);                                                                                                                                                                
        
    $watermark_height imagesy($watermark);                                                                                                                                                               
        
    $image imagecreatetruecolor($watermark_width$watermark_height);                                                                                                                                    
        if(
    eregi('.gif',$src)) {                                                                                                                                                                               
        
    $image imagecreatefromgif($src);                                                                                                                                                                     
        }                                                                                                                                                                                                      
        elseif(
    eregi('.jpeg',$src)||eregi('.jpg',$src)) {                                                                                                                                                      
        
    $image imagecreatefromjpeg($src);                                                                                                                                                                    
        }                                                                                                                                                                                                      
        elseif(
    eregi('.png',$src)) {                                                                                                                                                                           
        
    $image imagecreatefrompng($src);                                                                                                                                                                     
        }                                                                                                                                                                                                      
        else {                                                                                                                                                                                                 
        exit(
    "Your image is not a gif, jpeg or png image. Sorry.");                                                                                                                                            
        }                                                                                                                                                                                                      
        
    $size getimagesize($src);                                                                                                                                                                            
        
    $dest_x $size[0] - $watermark_width 0;                                                                                                                                                             
        
    $dest_y $size[1] - $watermark_height 0;                                                                                                                                                            
        
    imagecolortransparent($watermark,imagecolorat($watermark,0,0));                                                                                                                                        
        
    imagecopyresampled($image$watermark$dest_x$dest_y00$watermark_width$watermark_height$watermark_width$watermark_height);                                                              
         
    imagejpeg($image""95);                                                                                                                                                                            
         
    imagedestroy($image);                                                                                                                                                                                 
         
    imagedestroy($watermark);                                                                                                                                                                             
         
    ?>   
    Так же в корне создава файл watermark.png с тем что нужно наложить
    И в htaccess нужно добавить такую строку:
    Код:
    RewriteRule ^(.*)wp-content/uploads/(.*) $1watermark.php?src=wp-content/uploads/$2

    P.S. Скорее взято отсюда
    http://wpglamour.com/how-to-watermark-all-your-uploaded-images/

    Но не уверен, скрипт давно стоит на одином из сайтов и все хорошо. На картинки накладывает ватермарк при их первом просмотре, потом создается их копия и второй раз присматривающий видит уже картинку с ватермарком
     
    pigulsky нравится это.
Статус темы:
Закрыта.