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

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


Unikal

Recommended Posts

  • 3 weeks later...

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

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

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

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

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

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

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

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

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

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

Отлично работает на разных размерах изображений, БЛАГОДАРЮ !!!

Также не забывайте кэш браузера почистить.

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


  • 1 month later...

Работает фишка!!! (делал на 1.4.0) :) Спасибо

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

Уменя изображение watermark большое . На центральной картинке выглядит как отлично . Но на маленьких изображениях видна только его часть . По-правильному на маленьких вспомогательных изображениях watermark не нужен .

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

post-70-1293741785,2144_thumb.jpg

Единственно что смысл этой штуки должен быть в защите изображения от "злостного" копирования . А прорисовка watermark делается внизу на белом фоне (рис 2), в большинстве случаев не попадая на само изображение (рис 1). Его легко вырезать в фотошопе а значит и теряется некоторый принципиальный смысл этой фишки.

Если знаешь как изменять место положение на рисунке - напиши .

post-70-1293741785,1959_thumb.jpg

post-70-1293741785,232_thumb.jpg

Кто решил вопрос с watermark на маленьких картинках?

Та же проблема - watermark большой. На больших картинках смотрится нормально. На маленьких - только концовка. Нужно либо убрать с маленьких, либо сделать так, чтобы на маленьких, маленький watermark был. Есть мысли?

Посмотреть как у меня это выглядит можно здесь: Glostore

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


Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecoverable error: in httpdocs/system/library/image.php on line 34

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '..httpdocs/image/watermark.png' is not a valid JPEG file in ..httpdocs/system/library/image.php on line 34

Warning: imagesx() expects parameter 1 to be resource, boolean given in ..httpdocs/system/library/image.php on line 96

Warning: imagesy() expects parameter 1 to be resource, boolean given in ..httpdocs/system/library/image.php on line 97

Warning: imagecopy() expects parameter 2 to be resource, boolean given in ../httpdocs/system/library/image.php on line 118

и т.д.

Это у меня выскакивает после этих манипуляций..

Подскажите плиз. куда смотреть??

При этом никаких водяных знаков не добавляется...

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


для png используется функция imagecreatefrompng(), хотя там вроде было какое автоопределение на типы файлов если я не ошибаюсь (давно не заглядывал в ватермарку)

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


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

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

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

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

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

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, чтобы создалиь изображения с водяными знаками.

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

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

Всё работает четко на ОС 0.2.0 . Ватермарк масштабируется на все изображения соответственно их размерам. Задавая минимальные размеры изображения делаем знак только на больших изображениях !

Респект за решение вопроса !

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


+1

Именно это решение на мой взгляд, самое удачное.

Кому нужен шаблон вотермарка.png лежит в атаче. В фотошопе путём редактирования, наложить свой логотип.

watermark.zip

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


  • 3 weeks later...

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

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');
	}
}

В версии 1.5.0.5 работает отлично.

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

Интуитивно не получилось.

Картинки которые требуют watermark обычно имеют разрешение 500х500 px.

После манипуляции кода в:

if ($width > 499 || $height > 499 || $width < 501 || $height < 501)

получилась ЕРУНДА.

Watermark добавлялся на абсолютно все картинки, начиная от 72х72 пикселя и до 980х280

Прошу совета у Гуру.

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


После манипуляции кода в:

if ($width > 499 || $height > 499 || $width < 501 || $height < 501)

получилась ЕРУНДА.

|| - это логическое ИЛИ, а вам нужно логическое И. Это &&.

if ($width > 499 && $height > 499 && $width < 501 && $height < 501)
Надіслати
Поділитися на інших сайтах


  • 1 month later...

У меня на заработало. Не отображает водяного знака :(

Warning: imagecreatefrompng(/home/c/colorpluru/public_html/image/watermark.png) [function.imagecreatefrompng]: failed to open stream: No such file or directory in /home/c/colorpluru/public_html/system/library/image.php on line 99Warning: imagesx(): supplied argument is not a valid Image resource in /home/c/colorpluru/public_html/system/library/image.php on line 101Warning: imagesy(): supplied argument is not a valid Image resource in /home/c/colorpluru/public_html/system/library/image.php on line 102Warning: imagecopy(): supplied argument is not a valid Image resource in /home/c/colorpluru/public_html/system/library/image.php on line 127Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/c/colorpluru/public_html/system/library/image.php on line 129

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


Выручили! Я думал надо в каталог /home/c/colorpluru/public_html/image/DATA/watermark.png бросать, поэтому ничего не получалось. Сейчас логотип на увеличенных изображениях появился, но растянут, думаю как его отрегулировать...

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


У меня получилось вот так сделать. Взял с иностранного сайта. Работает на версиях v1.4.7, v1.4.8, v1.4.8b, v1.4.9, v1.4.9.1, v1.4.9.2, v1.4.9.3, v1.4.9.4, v1.4.9.5, v1.5.0, v1.5.0.1, v1.5.0.2, v1.5.0.3, v1.5.0.4, v1.5.0.5, v1.5.1, v1.5.1.1, v1.4.9.6, v1.5.1.2, v1.5.1.3

Создаём файл watermark.png с разрешением 268х50 (кому нужно в прикреплённом файле). Кидаем его в папку image. Далее правим файлы

В catalog/model/tool/image.php находим

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

после вставляем

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

В файле system/library/image.php заменяем

$watermark = $this->create($file);
на

$watermark = imagecreatefrompng($file);

находим

case 'bottomright':
и перед ним добавляем

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, 120, 40);
и заменяем на

imagecopy($this->image, $watermark, $watermark_pos_x, $watermark_pos_y, 0, 0, $watermark_width, $watermark_height);

Это для того, чтобы watermark находился посередине. У себя я его размести справа внизу с небольшим отступом от края справа и снизу. Для этого нужно в файле system/library/image.php найти

case 'bottomright':
                $watermark_pos_x = $this->info['width'] - $watermark_width;
                $watermark_pos_y = $this->info['height'] - $watermark_height;
                break;

и заменить на

case 'bottomright':
                $watermark_pos_x = $this->info['width'] - $watermark_width - 20;
                $watermark_pos_y = $this->info['height'] - $watermark_height - 40;
                break;

Цифрами можно менять отступ

У кого стоит vqmod можно использовать прикреплённый архив.

watermark-vqmod.zip

post-3948-0-40094000-1318236632_thumb.png

  • +1 4
Надіслати
Поділитися на інших сайтах

а нельзя никак на tif или psd заменить? png не поддерживает нужные мне свойства изображения

png 24 не поддерживает эти свойства? Сомневаюсь..
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

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

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

Important Information

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