ResizeImageGet
Описание и параметры
array CFile::ResizeImageGet( mixed file, array arSize, const resizeType = BX_RESIZE_IMAGE_PROPORTIONAL, bool bInitSizes = false, array arFilters = false, bool bImmediate = false, bool jpgQuality = false );
Метод уменьшает картинку и размещает уменьшенную копию в папку /upload/resize_cache/путь. Один раз уменьшив изображение получаем физический файл, который позволяет при последующих обращениях не проводить операции по уменьшению изображения. При следующем вызове метод вернет путь к уменьшенному файлу. Статический метод.
Параметры
| Параметр | Описание | С версии |
|---|---|---|
| file | Идентификатор файла из таблицы b_file или массив описания файла (Array(FILE_NAME, SUBDIR, WIDTH, HEIGHT, CONTENT_TYPE)), полученный методом GetFileArray. | |
| Size | Массив в виде Array("width"=>WIDTH, "height"=>HEIGHT) со значениями ширины и высоты для уменьшаемой картинки. Оба ключа обязательны. | |
| resizeType | Тип масштабирования:
| |
| InitSizes | Флаг возвращения в результирующем массив размеров измененной картинки. True - возвращает, false - нет | |
| Filters | Массив массивов для постобработки картинки с помощью фильтров: array(array("name" => "sharpen", "precision" => 15)). Фильтров пока один - sharpen. Задавать его не обязательно - будет инициализирован автоматом. Используется для наведения резкости у миниатюр. | 10.0.4 |
| Immediate | Флаг передается в обработчик события OnBeforeResizeImage, по смыслу означает масштабирование непосредственно при вызове метода. Обработчик в принципе может выполнять отложенное масштабирование. | 12.0.10 |
| jpgQuality | Число, устанавливающее в процентах качество JPG при масштабировании. Чем больше значение, тем выше качество и больше размер файла изображения. | 12.5.0 |
Возвращаемое значение
Метод возвращает массив вида:
array( 'src', // путь к уменьшенной картинке относительно корня сайта. 'width', // Если bInitSizes = true ширина уменьшенной картинки, иначе 0. 'height', // Если bInitSizes = true высота уменьшенной картинки, иначе 0. )
В случае ошибки возвращает false.
Примеры использования
//$uID - идентификатор пользователя
$uDBInfo = CUser::GetByID($uID);
if ($uInfo = $uDBInfo->GetNext())
{
if ($uInfo['PERSONAL_PHOTO'])
{
$file = CFile::ResizeImageGet($uInfo['PERSONAL_PHOTO'], array('width'=>150, 'height'=>150), BX_RESIZE_IMAGE_PROPORTIONAL, true);
$img = '<img src="'.$file['src'].'" width="'.$file['width'].'" height="'.$file['height'].'" />';
$uInfo['PERSONAL_PHOTO'] = $img;
}
$arResult['ITEMS'][$k]['USER_INFO'] = $uInfo;
}
Наложить водяной знак можно таким образом:
$arWaterMark = Array(
array(
"name" => "watermark",
"position" => "bottomright", // Положение
"type" => "image",
"size" => "real",
"file" => $_SERVER["DOCUMENT_ROOT"].'/upload/copy.png', // Путь к картинке
"fill" => "exact",
)
);
$arFileTmp = CFile::ResizeImageGet(
$arElement["DETAIL_PICTURE"],
array("width" => 250, "height" => 127),
BX_RESIZE_IMAGE_EXACT,
true,
$arWaterMark
);
© «Битрикс», 2001-2025, «1С-Битрикс», 2025