ResizeImageGet: быстрое создание превью (ресайз) изображений в 1C-Bitrix
Превью – это уменьшенное изображение оригинала, созданное с целью уменьшения его веса и общего веса страницы в целом, которое, в свою очередь, помогает нам значительно увеличить скорость загрузки сайта.
Создание превью мы уже рассматривали в CMS WordPress, а теперь похожее постараемся реализовать и в 1C-Bitrix.
Итак, в Bitrix существует метод «ResizeImageGet», с помощью которого и можно реализовать ресайз изображений. Пример использования следующий:
$resize_images = CFile::ResizeImageGet(
$arItem['PREVIEW_PICTURE'],
array(
'width' => ШИРИНА,
'height' => ВЫСОТА
),
BX_RESIZE_IMAGE_EXACT,
false
);
echo '<img src="'.$resize_images['src'].'" alt="'.$arItem['NAME'].'" />';
Что здесь что?
1. Позиции «ШИРИНА» и «ВЫСОТА» вы заменяете на числа (размер вашего будущего изображения в пикселях), например, «300» и «450» соответственно.
2. «BX_RESIZE_IMAGE_EXACT» – один из параметров масштабирования изображения. Допустимые значения:
- BX_RESIZE_IMAGE_EXACT – подгонка размера с сохранением пропорций под указанные параметры с обрезанием лишнего.
- BX_RESIZE_IMAGE_PROPORTIONAL – подгонка размера с сохранением пропорций. Размер ограничивается указанными параметрами.
- BX_RESIZE_IMAGE_PROPORTIONAL_ALT – подгонка размера с сохранением пропорций, за основу при этом берется максимальное значение из высоты/ширины. Размер также ограничивается указанными параметрами. Отлично подходит под обработку вертикальных картинок.
3. «false» – возвращать ли массив с данными о размерах измененного изображения. Допустимые значения:
- false – нет.
- true – да.
Код вы используете в нужном месте компонента. Обратите внимание, чтобы часть «$arItem['PREVIEW_PICTURE']» возвращала вам данные об изображении. Проверяйте этот момент через «var_dump».
Все превью изображений при такой конструкции будут создаваться автоматически, и храниться они будут в папке /upload/resize_images/.