При создании интернет-магазина на любой CMS изображение одного и того же товара может выводиться множество раз, с разными размерами: в каталоге, в карточке товара, в корзине, в заказе. Создавать отдельные поля в админке под каждый размер изображения просто нерационально. Можно использовать изменение ширины изображения средствами верстки, но тогда в списке товаров, к примеру, будут выводится картинки, по размеру (размеру файла) совпадающие с размером картинки в карточке товара. Можно представить сколько будет весить при загрузке обычный каталог сайта.
Для решения этой проблемы в битриксе существует гениальная функция resizeimageget. Она не только сжимает изображение до нужного размера, но ещё и кеширует его. Следующий вызов функции resizeimageget не обременит сервер дорогой процедурой сжатия картинки, а просто выдаст закешированную и сохраненную в папке upload/resize_cache/ копию.
Также огромным плюсом функции resizeimageget является то, что она может добавлять водяной знак к текущему изображению, что важно.
За это отвечает параметр filters, который имеет следующий вид:
$arWaterMark = Array(
array(
"name" => "image_name",
"position" => "center", // Положение
"type" => "image",
"size" => "real",
"file" => '/test.png', // Путь к картинке
"fill" => "exact",
)
);
Если сжимаемое изображение меньше, чем указано в массиве arSize, то сжатие не произойдет, функция вернет пустой результат, а в раздел сжатых файлов
ничего не добавится.