• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

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

clubmen

Профессор
Регистрация
18 Янв 2010
Сообщения
222
Реакции
49
Ребят, задался я вопросом... Как реализовать водяной знак, но текстовый с небольшими приблудами. Что бы текст брался с определенного доп поля. Проще говоря для каждой картинки что бы была возможность налепить свой текст на на фото. Буду рад если кто в этом поможет.
 
Водяной знак накладывается ДО отправки статьи => доп. поле ещё не заполнено.
Как вариант - сделать доп. поле в загрузчике
 
Водяной знак накладывается ДО отправки статьи => доп. поле ещё не заполнено.
Как вариант - сделать доп. поле в загрузчике
Или переписать и накладывать после добавления новости. Это же самый просто код.
 
Или переписать и накладывать после добавления новости. Это же самый просто код.
Плохой вариант... Загрузчик - многопоточен и на AJAX, что значит 30 секунд и 32 Мб (среднее по хостингам) RAM на каждую фото.
Если накладывать после, то у нас нет AJAX, чтобы продлить эти 30 секунд, памяти, а запрос уже однопоточный... Если к статье 10+ фото, уже риск не уложиться...
 
Плохой вариант... Загрузчик - многопоточен и на AJAX, что значит 30 секунд и 32 Мб (среднее по хостингам) RAM на каждую фото.
Если накладывать после, то у нас нет AJAX, чтобы продлить эти 30 секунд, памяти, а запрос уже однопоточный... Если к статье 10+ фото, уже риск не уложиться...
А причем тут загрузчик ?
Просто сделать что-то вроде этого :
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($img, 55, 128, 202);
            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, $path, 100);
            imagedestroy($img);
            return $path;
        }
    }
 
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. А ещё это позволит увидеть водяной знак на предпросмотре...
 
Последнее редактирование:
Назад
Сверху