Помощь Текстовый водяной знак

Тема в разделе "DLE", создана пользователем clubmen, 9 окт 2015.

Информация :
Актуальная версия DataLife Engine 12.0
( Final Release v.12.0 | Скачать DataLife Engine | Скачать 12.0 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.3 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. clubmen

    clubmen

    Регистр.:
    18 янв 2010
    Сообщения:
    204
    Симпатии:
    40
    Ребят, задался я вопросом... Как реализовать водяной знак, но текстовый с небольшими приблудами. Что бы текст брался с определенного доп поля. Проще говоря для каждой картинки что бы была возможность налепить свой текст на на фото. Буду рад если кто в этом поможет.
     
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.211
    Симпатии:
    2.239
    Водяной знак накладывается ДО отправки статьи => доп. поле ещё не заполнено.
    Как вариант - сделать доп. поле в загрузчике
     
  3. Gameer

    Gameer Постоялец

    Регистр.:
    25 апр 2014
    Сообщения:
    130
    Симпатии:
    84
    Или переписать и накладывать после добавления новости. Это же самый просто код.
     
  4. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.211
    Симпатии:
    2.239
    Плохой вариант... Загрузчик - многопоточен и на AJAX, что значит 30 секунд и 32 Мб (среднее по хостингам) RAM на каждую фото.
    Если накладывать после, то у нас нет AJAX, чтобы продлить эти 30 секунд, памяти, а запрос уже однопоточный... Если к статье 10+ фото, уже риск не уложиться...
     
  5. Gameer

    Gameer Постоялец

    Регистр.:
    25 апр 2014
    Сообщения:
    130
    Симпатии:
    84
    А причем тут загрузчик ?
    Просто сделать что-то вроде этого :
    PHP:
    class ImageCreate
        
    {

            private 
    $settings = array(
                
    "src"  => "",
                
    "size" => 52,
                
    "top"  => 136,
                
    "left" => 250,
                
    "font" => "./uploads/arial.ttf",
                
    "save" => "",
                
    "name" => ""
            
    );
         
            private 
    $text;
            public function 
    __construct($text$folder$img$name){
                
    $this->text $text;
                
    $this->settings['src']= $img;
                
    $this->settings['save']= $folder;
                
    $name explode('/',$name);
                
    $this->settings['name']= end($name);
            }

            public function 
    create()
            {
                
    $img imagecreatefromjpeg($this->settings["src"]);
                
    $color imagecolorallocate($img55128202);
                
    imagettftext(
                    
    $img,
                    
    $this->settings["size"],
                    
    0,
                    
    $this->settings["left"],
                    
    $this->settings["top"],
                    
    $color,
                    
    $this->settings["font"],
                    
    $this->text
                
    );
                
    unlink($this->settings['save'] . $this->settings['src']);
                
    $path $this->settings["save"] . $this->settings['name'] . ".jpg";
                
    imagejpeg($img$path100);
                
    imagedestroy($img);
                return 
    $path;
            }
        }
     
  6. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.211
    Симпатии:
    2.239
    Gameer, ёлки-палки... Вторая тема и второй спор об основах... Читай мои сообщения вдумчиво и полностью...

    Ты понимаешь, что каждое действие твоего волшебного кода жрёт раму? ЦП? Что на выполнение любого действия требуется время?
    Ты знаешь что такое поток?

    Вот дал ты скрипту 1 000 000 (сильно утрирую) фоток и сказал, а наложи ты мне водяной знак... И бедный PHP, имея всего 32 Мб рамы пошёл это делать... Сделал он 1 фотку, потратил секунду... Сделал он вторую - ещё секунда... А рама тоже жрётся... И вот у тебя 30-ая фотка, каждая по 1 Мб... У тебя уже 30 секунд заканчивается, да и 32-ой Мб как-то заканчиваются... Что делать?

    А AJAX тебе позволяет эти 1 000 000 фоток отправить на обработку 1 000 000 экземплярам PHP.. И каждый из них получает 30 секунд и 32 Мб в распоряжения...

    Короче, когда речь о загрузчике - на каждую загрузку идёт свой POST-запрос... И это свои 30 секунд и 32 Мб... А когда у тебя фотки уже на сайте и ты сохраняешь новость - у тебя 1 поток, 30 секунд и 32 Мб рамы... И укладывайся как хочешь...

    Итого, если речь о загрузчике - то заливай сколько хочешь и накладывай сколько хочешь... AJAX тебе поможет... А при сохранении статьи есть риск, что количество фоток поставит PHP в тупик и часть фоток PHP просто не успеет обработать...

    И давай не будем рассуждать про VDS с 2 Гб рамы... Я администрирую комплекс из 82 серверов... Поверь, там те же проблемы с рамой и временем обработки... Я уже не говорю про бесплатные хостинги, где и 32 Мб не дают...

    P.s. Если захочешь ответить на этот пост - 3 раза подумай, подготовь аргументы и только потом пиши...Аргумент "Здесь и так сойдёт" - не канает...
    P.p.s. а загрузчик при том, что именно в момент загрузки фотка обрезается и идёт её обработка - логично в этот же момент и наложить водяной знак, а не дёргать картинку второй раз потом...
    P.p.p.s. А ещё это позволит увидеть водяной знак на предпросмотре...
     
    Последнее редактирование: 9 окт 2015
    Attyla, gusewww, killoff и ещё 1-му нравится это.