Превью — это картинка в небольшом формате, которая весит гораздо меньше оригинала, не уступая ему по качеству. Вес изображения для предпросмотра также сказывается и на «тяжести» самой веб-страницы, что положительно влияет на скорость загрузки сайта. Ранее мы уже рассматривали создание такой копии для CMS WordPress, а сегодня проделаем почти то же с системой Bitrix.

Начать лучше с метода «ResizeImageGet» — с его помощью и будет происходить выполнение ресайза картинок, а именно:

<?php $res_images = CFile::ResizeImageGet($arItem[«PREVIEW_PICTURE»], Array(«width» => ШИРИНА, «height» => ВЫСОТА), BX_RESIZE_IMAGE_EXACT, false); echo ‘<img src=»‘.$res_images[«src»].‘» alt=»‘.$arItem[«NAME»].‘»/>’; ?>

На что здесь смотреть?

Значения ширины и высоты необходимо заменить на желаемые данные будущего превью в пикселях — например, на выходе изображение получится в формате 300х450

Параметр BX_RESIZE_IMAGE_EXACT регулирует принцип масштабирования и имеет несколько активных значений:

  • BX_RESIZE_IMAGE_EXACT — обрезает условно лишние края, но сохраняет пропорции картинки
  • BX_RESIZE_IMAGE_PROPORTIONA — То же самое, но без обрезания лишнего. Размер учитывается на заданных пользователем настройках
  • BX_RESIZE_IMAGE_PROPORTIONAL_ALT — Наиболее лучший вариант для использования ресайза вертикальных картинок. Подгоняет размер относительно установленных значений, сохраняет пропорции с учетом ширины и высоты изображения

False — определяет возвращать ли массив с конечными данными превью, или нет. Соответственно, свойство доступно в двух значениях: False (нет), и True (да)
При использовании указанной выше конструкции ресайз изображений будет выполняться автоматически, а хранятся такие копии в /upload/resize_images/.
Отметим, что код нужно применить в допустимом месте компонента, и проверить «$arItem[«PREVIEW_PICTURE»]» на предмет возврата данных о картинке — делается это через «var_dump»