Функция ресайза изображений в Bitrix: resizeImageFunc
Назначение
Функция resizeImageFunc предназначена для пропорционального изменения размеров изображения с использованием встроенных возможностей CMS 1С-Битрикс. Это вспомогательная функция, которая упрощает процесс получения уменьшенных копий изображений для вывода на сайте.
Параметры функции
$img— массив, содержащий информацию об изображении (в формате, возвращаемом CFile::GetFileArray())$w— желаемая ширина изображения в пикселях$h— желаемая высота изображения в пикселях
Возвращаемое значение
Функция возвращает массив с информацией о ресайзнутом изображении, включая пути к файлу, новые размеры и другую служебную информацию.
Принцип работы
- Извлечение ID изображения
$pictureId = $img['ID'];
Из входного массива достается идентификатор файла в системе Битрикс.
- Формирование массива размеров
$arSize = array(
"width" => $w,
"height" => $h
);
- Ресайз изображения
// Получение изображения
$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;
}
Проверенный хостинг
Международный хостинг-провайдер, аккредитованный национальный и международный регистратор доменных имён.
Сервис, предоставляющий широкий спектр услуг в области веб-хостинга и виртуальных серверов.