Настройка водяных знаков на фотографиях товаров 1С-Битрикс
Каждый день владельцы интернет-магазинов теряют до 15% трафика из-за копирования изображений конкурентами. Водяной знак на фотографиях товаров — первый рубеж защиты, который мы настраиваем на платформе 1С-Битрикс. Наши инженеры с 5-летним опытом внедрения Битрикс решают эту задачу под ключ: от встроенного механизма до кастомной обработки через GD. Обратитесь к нам — мы настроим водяные знаки так, чтобы они не ухудшали UX и не замедляли сайт.
При этом важно учитывать, что водяные знаки не должны мешать просмотру товара. По нашим данным, оптимальная прозрачность логотипа — 70–80%, а размер — не более 5% от ширины картинки. Мы гарантируем, что каждый сгенерированный файл будет оптимизирован для CDN. В среднем на 10 000 изображений обработка занимает 15–30 минут — без простоя сайта.
В этой статье мы разберём, как работает встроенный механизм водяных знаков в Битрикс, когда нужна кастомная обработка через GD и как правильно настроить кеширование. Если вам нужно готовое решение — свяжитесь с нами, мы оценим проект и предложим сроки от 2 до 5 дней в зависимости от сложности.
Как защитить изображения товаров от копирования?
Конкурент скачивает фотографии с каталога и использует их у себя. Это происходит именно потому, что на изображениях нет идентификатора магазина. Водяной знак — минимальная защита, но она работает как барьер для ленивого копирования.
Где Битрикс обрабатывает изображения?
Все изображения в Битрикс проходят через модуль main, класс CFile. Ресайз и конвертация происходят при обращении к методу CFile::ResizeImageGet() или при генерации миниатюры через компонент. Физически обработанные файлы кешируются в /upload/resize_cache/.
Водяной знак не встроен в стандартный CFile. Битрикс предоставляет класс \Bitrix\Main\Diag\Image и обёртку \Bitrix\Main\IO\File, но обработка водяного знака реализована в отдельном функционале — через настройки модуля main в административной части.
Как настроить встроенные водяные знаки в модуле main?
В административной части (/bitrix/admin/settings.php?lang=ru&mid=main) есть раздел «Водяные знаки». Параметры сохраняются в b_option с модулем main:
-
use_watermark_text— использовать текст как водяной знак -
use_watermark_image— использовать изображение -
watermark_text— текст водяного знака -
watermark_text_color— цвет в формате R,G,B -
watermark_text_size— размер шрифта -
watermark_position— позиция (TL, TC, TR, CL, CC, CR, BL, BC, BR) -
watermark_image_path— путь к файлу-изображению для водяного знака -
watermark_image_alpha— прозрачность (0–100)
Встроенный механизм применяет водяной знак при вызове CFile::ResizeImageGet() с параметром $bUseWatermark = true. Компонент bitrix:catalog.element по умолчанию не передаёт этот параметр — нужно явно указать в параметрах компонента или в шаблоне.
Таблица позиций водяного знака:
| Код позиции | Описание |
|---|---|
| TL | Верхний левый угол |
| TC | Верхний центр |
| TR | Верхний правый угол |
| CL | Центр слева |
| CC | Центр |
| CR | Центр справа |
| BL | Нижний левый угол |
| BC | Нижний центр |
| BR | Нижний правый угол |
Когда нужно программное наложение через GD?
Для нестандартного позиционирования или динамического контента водяного знака (например, цена, дата) используется прямая работа с GD:
function applyWatermark(string $sourcePath, string $outputPath): void { $info = getimagesize($sourcePath); $src = match($info[2]) { IMAGETYPE_JPEG => imagecreatefromjpeg($sourcePath), IMAGETYPE_PNG => imagecreatefrompng($sourcePath), IMAGETYPE_WEBP => imagecreatefromwebp($sourcePath), default => throw new \RuntimeException('Unsupported format'), }; $wmPath = $_SERVER['DOCUMENT_ROOT'] . '/local/watermark.png'; $wm = imagecreatefrompng($wmPath); $srcW = imagesx($src); $srcH = imagesy($src); $wmW = imagesx($wm); $wmH = imagesy($wm); // Позиция: правый нижний угол с отступом 10px $destX = $srcW - $wmW - 10; $destY = $srcH - $wmH - 10; imagecopy($src, $wm, $destX, $destY, 0, 0, $wmW, $wmH); match($info[2]) { IMAGETYPE_JPEG => imagejpeg($src, $outputPath, 90), IMAGETYPE_PNG => imagepng($src, $outputPath), IMAGETYPE_WEBP => imagewebp($src, $outputPath, 85), }; imagedestroy($src); imagedestroy($wm); } Программный метод даёт больше контроля: можно накладывать текст с датой, обрабатывать только определённые категории товаров или менять прозрачность в зависимости от яркости фона. Однако он требует серверных ресурсов — при массовой обработке используйте агенты.
Почему кеширование водяных знаков критично?
Водяной знак не должен накладываться при каждом запросе. Обработанное изображение кешируется в /upload/watermarked/{$fileId}/ с именем, включающим хеш параметров водяного знака. При изменении логотипа или позиции — хеш меняется, кеш инвалидируется автоматически.
Для массовой обработки существующих изображений: агент или CLI-скрипт итерирует b_file по полю MODULE_ID = 'iblock' и обрабатывает файлы батчами по 50–100 штук. На 10 000 изображений при среднем размере 200 КБ обработка занимает 15–30 минут на нормальном сервере.
Сравнение методов наложения водяных знаков
| Параметр | Встроенный модуль main | Программное наложение GD |
|---|---|---|
| Простота настройки | Высокая | Средняя |
| Гибкость позиционирования | 9 вариантов | Любая позиция |
| Поддержка динамического текста | Нет | Да |
| Загрузка на сервер | Минимальная | Умеренная (AGI) |
Почему водяной знак не решает все проблемы?
Водяной знак — лишь один из элементов защиты. Он не предотвращает скриншоты или ручное копирование. Для полной защиты мы рекомендуем комбинировать водяные знаки с запретом индексации изображений в robots.txt, настройкой горячих ссылок (hotlink protection) и использованием технологии BlurHash для превью. Наши специалисты помогут внедрить комплексное решение — свяжитесь с нами для консультации.
Что входит в настройку водяных знаков?
- Параметры встроенного водяного знака в
b_optionдля модуляmain - Передачу флага
bUseWatermarkв компонентах каталога - Кастомную функцию наложения через GD для нестандартных требований
- Директорию кеша
/upload/watermarked/с правильными правами - Агент для массовой обработки существующих изображений
- Исключение: изображения определённых категорий или брендов без водяного знака
Закажите настройку водяных знаков — получите консультацию по вашему проекту в течение часа. Опыт наших инженеров — более 5 лет в разработке на Битрикс, более 50 успешных кейсов по защите контента.







