Документация для разработчиков
Темная тема

ResizeImage

Описание и параметры

CFile::ResizeImage(
	array File,
	array Size,
	resizeType = BX_RESIZE_IMAGE_PROPORTIONAL
)

Метод является оберткой ResizeImageFile. Изменяет размеры графического файла. Статический метод.

Параметры

Параметр Описание
Fileмассив файла
Size Массив вида array("width" => $width, "height" => $height)); оба ключа обязательны.
resizeTypeтип масштабирования:
  • BX_RESIZE_IMAGE_EXACT - масштабирует в прямоугольник $arSize без сохранения пропорций;
  • BX_RESIZE_IMAGE_PROPORTIONAL - масштабирует с сохранением пропорций, размер ограничивается $arSize;
  • BX_RESIZE_IMAGE_PROPORTIONAL_ALT - масштабирует с сохранением пропорций, размер ограничивается $arSize, улучшенная обработка вертикальных картинок.

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

Создание миниатюр "на лету":

	$renderImage = CFile::ResizeImageGet($arResult["DETAIL_PICTURE"], Array("width" => $newWidth, "height" => $newHeight));
	echo CFile::ShowImage($renderImage['src'], $newWidth, $newHeight, "border=0", "", true);

Масштабирование изображения с последующим его сохранением:

// проверяем тип и размер файла.
$checkfile = CFile::CheckFile($arFile,400000,'image/','gif,png,jpeg,jpg');
if(strlen($checkfile) > 0) 
{
	$strError .= $arFile['name'].': '.$strError.'<br>';
} 
else 
{
	// масштабируем изображение
	CFile::ResizeImage(
		&$arFile, // путь к изображению, сюда же будет записан уменьшенный файл
		array(
			"width" => $newWidth,  // новая ширина
			"height" => $newHeight // новая высота
		),
		BX_RESIZE_IMAGE_EXACT // метод масштабирования. обрезать прямоугольник без учета пропорций
		);
	// сохраняем уменьшенное изображение. 
	$fileId = CFile::SaveFile($arFile, $IBlockType);
}


© «Битрикс», 2001-2024, «1С-Битрикс», 2024