Помощь Водяные знаки

Тема в разделе "DLE", создана пользователем sk8er, 24 мар 2009.

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

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

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

    sk8er SEO и SMO гуру :3

    Регистр.:
    21 июл 2008
    Сообщения:
    398
    Симпатии:
    25
    1) дле 7.2
    2) нулёная мид тимом
    3) Вопрос такой назрел любопытный... Есть ли возможность накладывать 2 водяных знака? Нужно, чтоб один накладывался в правый нижний угол, другой в левый верхний угол. Ну в идеале чтоб редактировать можно было :)
     
  2. Dark Angell

    Dark Angell Читатель

    Заблокирован
    Регистр.:
    29 фев 2008
    Сообщения:
    1.036
    Симпатии:
    690
    делаеш блок ватемага 50 на 100 и в двух углах пишешь свой ватермак,ламерский вопрос :-]
     
  3. AleXSuS

    AleXSuS

    Регистр.:
    27 фев 2009
    Сообщения:
    195
    Симпатии:
    55
    открываем файл engine/inc/makethumb.php

    ищем следующий код:
    Код:
    function insert_watermark($min_image)
        { global $config;
            $margin = 7;
    
    		$this->watermark_image_light = ROOT_DIR.'/templates/'.$config['skin'].'/dleimages/watermark_light.png';
    		$this->watermark_image_dark =  ROOT_DIR.'/templates/'.$config['skin'].'/dleimages/watermark_dark.png';
    
            $image_width = imagesx($this->img['src']);
            $image_height = imagesy($this->img['src']);
    
            list($watermark_width, $watermark_height)
                = getimagesize($this->watermark_image_light);
    
    
                    $watermark_x = $image_width - $margin - $watermark_width;
                    $watermark_y = $image_height - $margin - $watermark_height;
    
    
            $watermark_x2 = $watermark_x + $watermark_width;
            $watermark_y2 = $watermark_y + $watermark_height;
    
            if ($watermark_x < 0 OR $watermark_y < 0 OR
                $watermark_x2 > $image_width OR $watermark_y2 > $image_height OR
    			$image_width < $min_image OR $image_height < $min_image)
            {
               return;
            }
    
    
            $test = imagecreatetruecolor(1, 1);
            imagecopyresampled($test, $this->img['src'], 0, 0, $watermark_x, $watermark_y, 1, 1, $watermark_width, $watermark_height);
            $rgb = imagecolorat($test, 0, 0);
    
            $r = ($rgb >> 16) & 0xFF;
            $g = ($rgb >> 8) & 0xFF;
            $b = $rgb & 0xFF;
    
            $max = min($r, $g, $b);
            $min = max($r, $g, $b);
            $lightness = (double)(($max + $min) / 510.0);
            imagedestroy($test);
    
            $watermark_image = ($lightness < 0.5) ? $this->watermark_image_light : $this->watermark_image_dark;
    
            $watermark = imagecreatefrompng($watermark_image);
    
            imagealphablending($this->img['src'], TRUE);
            imagealphablending($watermark, TRUE);
    
            imagecopy($this->img['src'], $watermark, $watermark_x, $watermark_y, 0, 0,$watermark_width, $watermark_height);
    
            imagedestroy($watermark);
    
        }
    и в нём уже ковыряемся. допустим за расположение отвечают эти переменные:
    $watermark_x и $watermark_y
    я думаю по аналогии сможете добавить по переменной, для второй картинки в другом углу.

    Добавлено через 2 минуты
    Ламерский ответ :mad: А что делать, если картинки всегда разного размера?
    Где-то будет нормально, а где-то будет получаться, что watermark в центре картинки допустим!
     
  4. Shotlandec

    Shotlandec

    Регистр.:
    17 сен 2007
    Сообщения:
    728
    Симпатии:
    162
    эт ты зря... в движке фиксация картинки по максимальным размерам, а если картинка будет меньше? Я так понял, что его интересует сама функция... То php тебе в руки, если хоть не много в нем понимашь, то топай в своем двиге сюда:
    Код:
    /engine/inc/makethumb.php

    находи вот эту строку:
    Код:
    function insert_watermark($min_image)
    ну и правь как тебе надо...

    зы во бляхамуха, покаписал, раньше меня ответили :D
     
  5. Kenny87

    Kenny87 Постоялец

    Регистр.:
    12 авг 2007
    Сообщения:
    94
    Симпатии:
    11
    скопировать процедуры функции и все по переименовывать ну и координаты свои и буит 2 )))
     
  6. sk8er

    sk8er SEO и SMO гуру :3

    Регистр.:
    21 июл 2008
    Сообщения:
    398
    Симпатии:
    25
    :D:D:D Да))) Очень ламерский вопрос))

    Ребят, а можете помочь полностью всё реализовать?) Я всё закосячу... в php ничего не знаю...
     
  7. Хортица

    Хортица Прохожие

    Это бы сообщение на серч :) В твою тему об услугах по ДЛЕ :D

    Влепите мне кто нить штраф за оффтоп :thenks:
     
  8. npo100

    npo100 Читатель

    Заблокирован
    Регистр.:
    27 май 2008
    Сообщения:
    117
    Симпатии:
    28
    А не проще создать ватемарк размером 768* и по бокам написать что-то?
     
  9. sergeysnl

    sergeysnl Читатель

    Заблокирован
    Регистр.:
    10 фев 2008
    Сообщения:
    331
    Симпатии:
    100
    у каждой картинки свой размер, сделаешь 768* а картинку зальют 1280х1024 и бред получится
     
Статус темы:
Закрыта.