Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Доработка] Watermark (логотип на картинках)


Unikal

Recommended Posts

  • 1 month later...
  • 2 weeks later...

Так ведь всё равно скачиваются картинки без водяного знака. Зачем тогда он нужен если фото не защищает?

Если "водяной знак" рисуется на картинке, а вы скачиваете картинку без него, значит или кэш или у вас не все картинки "защищаются".
Надіслати
Поділитися на інших сайтах


Если "водяной знак" рисуется на картинке, а вы скачиваете картинку без него, значит или кэш или у вас не все картинки "защищаются".

Я смотрел результат на чужом магазине, из 25 поста.

Если данная модификация установлена корректно, то надо дорабатывать модуль.

Поправьте меня, если не прав.

Надіслати
Поділитися на інших сайтах


Я смотрел результат на чужом магазине, из 25 поста.

Ну он защищает изображением только большую картинку. При защите обеих копий появляется проблема:

1) Либо защита на маленькой картинке будет перекрывать всю картинку

2) Либо нужно на маленькую картинку выводить другую защиту (я выбрал этот вариант, вроде бы в ветке было его обсуждение).

Скажите честно - у вас все картинки настолкьо ценные и уникальные, что даже в размере 250*250 представляют интерес?

Надіслати
Поділитися на інших сайтах


Ну он защищает изображением только большую картинку. При защите обеих копий появляется проблема:

1) Либо защита на маленькой картинке будет перекрывать всю картинку

2) Либо нужно на маленькую картинку выводить другую защиту (я выбрал этот вариант, вроде бы в ветке было его обсуждение).

Скажите честно - у вас все картинки настолкьо ценные и уникальные, что даже в размере 250*250 представляют интерес?

Честно отвечаю... у меня планируется продажа товара на прямую от поставщиков, данного товара в нете мало, цена очень привлекательная, что бы не допустить спекуляции, собственно и нужен водяной знак. У всех представителей данных товаров имеется свои водяные знаки магазинов, что делает торговлю не столь привлекательную, если накладывать свой водяной знак, обычно такие магазины обходят стороной. По этому и я не хотел бы открывать открытый источник для скачивания фото данных товаров (конкуренция). Если бы фото (а они студийные), были в свободном обращении, то и товаров было бы как грязи, с разной ценовой катигорией.

Получается что все картинки будут уникальными.

Надіслати
Поділитися на інших сайтах


Получается что все картинки будут уникальными.

В начале ветки есть решения для 1.4.9.1 для ватермарков на маленьких и больших изображениях.
Надіслати
Поділитися на інших сайтах


Жаль... но я поставил ocStore 0.1.7

Ну так пробовали или просто увидели несовпадение версий и не стали? 1.4.9.3 от 1.4.9.1 не сильно отличаются, может и сработать.
Надіслати
Поділитися на інших сайтах


Ну так пробовали или просто увидели несовпадение версий и не стали? 1.4.9.3 от 1.4.9.1 не сильно отличаются, может и сработать.

Хорошо, попробую отпишусь. ;)

Я правильно понял, вот это?

Если нет, ткните пожалуйста.

Надіслати
Поділитися на інших сайтах


Хорошо, попробую отпишусь. ;)

Я правильно понял, вот это?

Если нет, ткните пожалуйста.

За древностию лет уже не помню, предположил бы это. но не уверен. В любом случае умоляю - ДЕЛАЙТЕ БЭКАП!
Надіслати
Поділитися на інших сайтах


Вот это работает!

Но почему то не распространяется на последние товары...

Не плохо было бы для каждой картинки, свой водяной знак, то есть... Для 120х120 / 250х250 / 500х500

А так получается одна на все. Не пропорциональна смотрится.

DEN: За решение спасибо. Плюсик тыкнул!

Надіслати
Поділитися на інших сайтах


Согласен но решение на поверхность указать в скрипте размер WaterMark в % от размера картинки......

Пожелание может завести традицию все дополнения в виде модулей ставить в идеале конечно....)))

Змінено користувачем afwollis
долой "оверквотинг" :)
Надіслати
Поділитися на інших сайтах


Работает на OpenCart 1.4.9.1/2/3

1. Создайте PNG водяной знак, назовите его watermark.png и скопировать его в image/.

2. Теперь необходимо отредактировать 2 PHP файла

3. Первый файл: system/library/image.php

линий 93-121, и вы увидите следующий код:

public function watermark($file, $position = 'bottomright') {
        $watermark = $this->create($file);
       
        $watermark_width = imagesx($watermark);
        $watermark_height = imagesy($watermark);
       
        switch($position) {
            case 'topleft':
                $watermark_pos_x = 0;
                $watermark_pos_y = 0;
                break;
            case 'topright':
                $watermark_pos_x = $this->info['width'] - $watermark_width;
                $watermark_pos_y = 0;
                break;
            case 'bottomleft':
                $watermark_pos_x = 0;
                $watermark_pos_y = $this->info['height'] - $watermark_height;
                break;
            case 'bottomright':
                $watermark_pos_x = $this->info['width'] - $watermark_width;
                $watermark_pos_y = $this->info['height'] - $watermark_height;
                break;
        }
       
        imagecopy($this->image, $watermark, $watermark_pos_x, $watermark_pos_y, 0, 0, 120, 40);
       
        imagedestroy($watermark);
    }

заменить на

public function watermark($file, $position = 'bottomright') {
   
   //Pb ! you don't work on the true object => you must modify the "create" method ($mime = $this->info['mime']; it's work only if we have the same image format !
        //$watermark = $this->create($file);

        //Prefer PNG files => it's not optimized but it's work
   $watermark = imagecreatefrompng($file);
       
        $watermark_width  = imagesx($watermark);
        $watermark_height = imagesy($watermark);

        switch($position) {
            case 'topleft':
                $watermark_pos_x = 0;
                $watermark_pos_y = 0;
                break;
            case 'topright':
                $watermark_pos_x = $this->info['width'] - $watermark_width;
                $watermark_pos_y = 0;
                break;
            case 'bottomleft':
                $watermark_pos_x = 0;
                $watermark_pos_y = $this->info['height'] - $watermark_height;
                break;
            case 'bottomright':
                $watermark_pos_x = $this->info['width'] - $watermark_width;
                $watermark_pos_y = $this->info['height'] - $watermark_height;
                break;
         case 'center':
            $watermark_pos_x = ($this->info['width']- $watermark_width)/2;
            $watermark_pos_y = ($this->info['height']- $watermark_height)/2;
            break;
        }
       
        imagecopy($this->image, $watermark, $watermark_pos_x, $watermark_pos_y, 0, 0, $watermark_width, $watermark_height);
       
        imagedestroy($watermark);
    }

4.Второй файл для редактирования catalog/model/tool/image.php

Перейти к строке 27, и вы увидите следующий код:

$image = new Image(DIR_IMAGE . $old_image);

после него вставить следующий код:

{
    if ($width > 400 || $height > 300) 
        {   
          $image->watermark(DIR_IMAGE . 'watermark.png', 'center');
	}
}

В коде выше, вы можете определить нужное положение водяного знака (topleft, topright, bottomleft, bottomright or center).

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

5. Заключительный шаг: удалить все данные в папке image/cache/data, чтобы создалиь изображения с водяными знаками.

Вот и все! Удачи!

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

Змінено користувачем Escape
  • +1 8
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Что-то не совсем понимаю как он масштабируется в зависимости от размера....

Добавил WM 500*500 (стандарт на увеличенные изображения) - на изначально больших картинках он меньше чем надо, на более меньших он весь не влазит. Насколько я понимаю в данном случае происходит сначала наложение ватермарка на картинку без учета размера, и только потом получившаяся картинка масштабируется. А нельзя ли сначала подгонять картинку, а потом накладывать WM?

в принципе последний вариант отличный, но всеравно приходится подготавливать картинки перед аплоадом на сервер..

Надіслати
Поділитися на інших сайтах


Что-то не совсем понимаю как он масштабируется в зависимости от размера....

В ветке есть решение наложение разных знаков в зависимости от размера картинки.
Надіслати
Поділитися на інших сайтах


Я так понимаю всё это нужно тем, кто переживает, а не стырят ли у меня картинку, над которой я так долго сидел, и начинают портить внешний вид "товара".

Для тех, кто всё-таки намерен это сделать (защитится), на мой взгляд, есть более приемлемый (для меня это так) вариант:

Все что от Вас требуется - это разместить данный код между тегами <head></head>:

<script language=JavaScript>

<!--

var message="Правый клик запрещен!";

///////////////////////////////////

function clickIE4(){

if (event.button==2){

alert(message);

return false;

}

}

function clickNS4(e){

if (document.layers||document.getElementById&&!document.all){

if (e.which==2||e.which==3){

alert(message);

return false;

}

}

}

if (document.layers){

document.captureEvents(Event.MOUSEDOWN);

document.onmousedown=clickNS4;

}

else if (document.all&&!document.getElementById){

document.onmousedown=clickIE4;

}

document.oncontextmenu=new Function("alert(message);return false")

// -->

</script>

Надіслати
Поділитися на інших сайтах


gdi31, давайте оставим в покое "технологии 18-го века"?

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

а еще есть "CTRL+U" и "файл - сохранить как"...

к тому же данный подход (с выскакивающими запретами) вызывает раздражение и неприязнь.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.