Watermark (водяной знак) для opencart 2.3.0.2

Watermark (водяной знак) для opencart 2.3.0.2

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

Создайте резервную копию файла

/catalog/model/tool/image.php 

Создайте изображение в формате .png. Сохраните его с именем watermark.png и загрузите в директорию /image вашего сайта. Я создал изображение размером 500х500px.

 

Откройте файл image.php находящийся в директории /catalog/model/tool/ и после строки

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

добавьте следующую строку

$image->watermark(new Image(DIR_IMAGE . 'watermark.png'), 'middlecenter');

middlecenter - это позиция водяного знака отображающая его по центру изображения товара.

Позиция  может принимать следующие значения:

  • topleft - левый верхний угол
  • topcenter - сверху по центру
  • middleleft - слева посередине
  • middleright - справа посередине
  • bottomleft - внизу слева
  • bottomcenter - снизу по центру
  • bottomright - внизу справа

Сохраните файл и перейдите в раздел модификаторы панели администратора сайта. Нажмите кнопку обновить.

После этого необходимо удалить изображения находящиеся в кэше opencart. Для этого перейдите в директорию /image/cache/ и удалите раздел в котором находятся кэшированные изображения товаров. В моем случае это catalog. Очистите кэш браузера и перейдите на сайт. Теперь все изображения товаров отображаются на сайте с водяным знаком находящимся в центре.

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

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

Добавьте в файл /catalog/model/tool/image.php условие с размерами изображений для обработки.

Замените добавленную ранее строку

$image->watermark(new Image(DIR_IMAGE . 'watermark.png'), 'middlecenter');

на

if ($width == 498 || $height == 498) {
$image->watermark(new Image(DIR_IMAGE . 'watermark.png'), 'middlecenter');
}
if ($width == 600 || $height == 600) {
$image->watermark(new Image(DIR_IMAGE . 'watermark.png'), 'middlecenter');
}

No video selected.

Комментарии (14)

  • Артур

    Артур

    • 06 июля 2017 at 02:51
    • #

    Сделал все как написано, но почему-то у меня на всех изображениях товара водяной знак в разных местах показывается. Вообще не по центру...

    ответ

    • Администратор

      Администратор

      • 23 июля 2017 at 19:32
      • #

      Обновите модификаторы, очистите кэш изображений opencart и браузера.

      ответ

      • Артур

        Артур

        • 28 сентября 2017 at 15:09
        • #

        Спасибо! Помогло.

        ответ

  • Антон

    Антон

    • 12 декабря 2017 at 13:24
    • #

    Спасибо за безумно простое решение ! побольше таких решений! респект!

    ответ

  • Игорь

    Игорь

    • 15 мая 2018 at 21:06
    • #

    Работает, спасибо. перекачал уйму модулей и 0, а эт спасло

    ответ

  • Антон

    Антон

    • 15 мая 2018 at 22:48
    • #

    Сделал всё как Вы написали, но водяной знак отображается очень "криво". Сложно объяснить словами. Можно посмотреть на сайте.

    ответ

    • Администратор

      Администратор

      • 15 мая 2018 at 23:00
      • #

      Вам необходимо создать изображение в формате .png с сохранением прозрачности.

      ответ

      • Антон

        Антон

        • 15 мая 2018 at 23:07
        • #

        Всё сохранял с прозрачностью. Может это связано с тем что основные изображения png?

        ответ

        • Администратор

          Администратор

          • 15 мая 2018 at 23:19
          • #

          Причин может быть много и разобраться можно лишь детально изучив Ваш проект. Можем решить этот вопрос. Обращайтесь!

          ответ

  • Николай

    Николай

    • 26 июня 2018 at 02:55
    • #

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

    ответ

    • Администратор

      Администратор

      • 27 августа 2018 at 16:41
      • #

      Сделайте все изображения одного размера. У меня так. Или пропишите другое изображение для этих размеров.

      ответ

  • Андрей

    Андрей

    • 19 июля 2018 at 21:13
    • #

    Здравствуйте! А как указать папки с изображениями, чтобы водяной знак распространялся только на определенные папки, а не на все что есть!?)

    ответ

  • Администратор

    Администратор

    • 07 ноября 2019 at 13:19
    • #

    Рад, что смог помочь!

    ответ

Оставить комментарий

Вы комментируете как Гость.
© 2024 Prospectweb. Все права защищены.