1С-Битрикс

Как добавить watermark для изображений в Bitrix?

1C-Bitrix. Добавляем watermark для изображений в Битриксе.

sqlka.ruОпубликовано: Чтение: 2 мин.
Как добавить watermark для изображений в Bitrix?

Для того, чтобы избежать копирования сторонними сайтами и парсерами, мы используем вотермарки. Стандартно, вы можете настроить ее через админку только для изображения анонса и детального изображения. Там есть не только установка изображения, но и наложение текста. Параметров и вариантов много. Рассмотрим пример.

foreach ($arResult['PHOTO'] as $key => $arFile) {
   $arResizeFile = CFile::ResizeImageGet(
      $arFile["ID"],
      array("width" => 80, 'height' => 80),
      BX_RESIZE_IMAGE_PROPORTIONAL,
      true,
      $arWaterMark
   );

   $arResult['PHOTO'][$key] = $arResizeFile;
}

$arWaterMark = [
	'name' => 'watermark',
	'position' => 'bc', // bottom center
	'type' => 'file',
	'size' => 'small',
	'alpha_level' => 80,
	'file' => $_SERVER['DOCUMENT_ROOT'].'/images/my_watermark.png',
];

CFile::ResizeImageGet — вызывается тогда, когда вы хотите оптимизировать размер фото и вывести миниатюры. Также, он позволяет наложить водяной знак на новое фото.

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

Все параметры:

$arFilters = array(
      array(
            "name"           => "watermark", 
            "position"       => "bc",        // (доступные варианты tl|tc|tr|ml|mc|mr|bl|bc|br или topleft|topcenter|topright|centerleft|center|centerright|bottomleft|bottomcenter|bottomright)  
            "type"           => "image",     // (доступные варианты "image|text")
            "size"           => "real",      // ( доступные варианты big|medium|small|real; real доступен только для type=image )
            "coefficient"    => "1",         // ( альтернатива параметру size. В случае текстового варианта - от 1 до 7, по крайней мере так в исходниках; для картинок 0.1 до 1 )
            "fill"           => "exact",          // ( доступные варианты exact|resize|repeat )
            "file"           => $_SERVER["DOCUMENT_ROOT"]."/watermark.png",  // (абсолютный путь до картинки с водяным знаком)
            "text"           => "Водяной знак!", //  ( текст водяного знака )
            "color"          => "ff0000",        //  ( hex формат цвета текста )
            "font"           => $_SERVER["DOCUMENT_ROOT"]."/arial.ttf",      //  ( путь до файла шрифта в формате .ttf )
            "use_copyright"  => "Y"              //  ( использовать ли знак копирайта перед текстом )
     )
   );

Хотите освоить SQL для работы с данными?

В SQLka можно изучать SQL последовательно или готовиться к собеседованиям. Запросы выполняются прямо в браузере — устанавливать базу данных не нужно.

sqlka.ru

support@sqlka.ru

Дальше по теме

← Все статьи