Logo

Функция ресайза изображений в Bitrix: resizeImageFunc

Назначение

Функция resizeImageFunc предназначена для пропорционального изменения размеров изображения с использованием встроенных возможностей CMS 1С-Битрикс. Это вспомогательная функция, которая упрощает процесс получения уменьшенных копий изображений для вывода на сайте.

Параметры функции

  • $img — массив, содержащий информацию об изображении (в формате, возвращаемом CFile::GetFileArray())
  • $w — желаемая ширина изображения в пикселях
  • $h — желаемая высота изображения в пикселях

Возвращаемое значение

Функция возвращает массив с информацией о ресайзнутом изображении, включая пути к файлу, новые размеры и другую служебную информацию.

Принцип работы

  1. Извлечение ID изображения
$pictureId = $img['ID'];

Из входного массива достается идентификатор файла в системе Битрикс.

  1. Формирование массива размеров
$arSize = array(
    "width" => $w,
    "height" => $h
);
  1. Ресайз изображения
// Получение изображения
$arFile = CFile::GetFileArray(123); // ID изображения = 123

// Ресайз до 300x200 пикселей
$resizedImg = resizeImageFunc($arFile, 300, 200);

// Вывод ресайзнутого изображения
echo '<img src="'.$resizedImg['src'].'" width="'.$resizedImg['width'].'" height="'.$resizedImg['height'].'">';

Вызывается стандартный метод Битрикс для ресайза изображений с параметрами:

  • BX_RESIZE_IMAGE_PROPORTIONAL — изображение масштабируется с сохранением пропорций, вписываясь в заданные размеры
  • true — флаг, указывающий на необходимость получения размеров результирующего изображения

Пример использования

// Получение изображения
$arFile = CFile::GetFileArray(123); // ID изображения = 123

// Ресайз до 300x200 пикселей
$resizedImg = resizeImageFunc($arFile, 300, 200);

// Вывод ресайзнутого изображения
echo '<img src="'.$resizedImg['src'].'" width="'.$resizedImg['width'].'" height="'.$resizedImg['height'].'">';

Особенности

  • Функция сохраняет пропорции исходного изображения
  • Если исходное изображение меньше указанных размеров, оно не будет увеличено (благодаря использованию BX_RESIZE_IMAGE_PROPORTIONAL)
  • Ресайзнутые изображения кэшируются системой для оптимизации производительности

Требования

  • Функция предназначена для использования в проектах на CMS 1С-Битрикс
  • Требуется подключение пролога Bitrix или нахождение в контексте CMS

Подробная документация на сайте CMS 1С-Битрикс

function resizeImageFunc($img,$w,$h)
{
    $pictureId = $img['ID']; // ID вашего файла
    
        $arSize = array(
            "width" => $w,
            "height" => $h
        );

        $resizedPicture = CFile::ResizeImageGet(
            $pictureId,                       // ID  картинки
            $arSize,                          // размеры
            BX_RESIZE_IMAGE_PROPORTIONAL,      // пропорции
            true                               // получаем размеры
        );
     return $resizedPicture;
}

Проверенный хостинг

Beget

Международный хостинг-провайдер, аккредитованный национальный и международный регистратор доменных имён.

Timeweb

Сервис, предоставляющий широкий спектр услуг в области веб-хостинга и виртуальных серверов.

Заказать кастомную разработку

Корпоративные порталы
  • Веб-дизайн
  • Фронт-энд
  • Бэк-энд
  • Контент
  • PM
Мобильные приложения
  • Веб-дизайн
  • Фронт-энд
  • Бэк-энд
  • Контент
  • PM
Разработка ИТ-продукта
  • Веб-дизайн
  • Фронт-энд
  • Бэк-энд
  • Контент
  • PM