|
mixed function getResize(
mixed $file,
int $width = false,
int $height = false,
bool $bConvertWebp = false,
int $resizeType = BX_RESIZE_IMAGE_PROPORTIONAL
)
Функция возвращает массив с уменьшенной картинкой. В случае ошибки вернёт false
Функция является обёрткой над функцией \CFile::ResizeImageGet:
\CFile::ResizeImageGet( $file, array( "width"=>$width, "height"=>$height ), $resizeType, true );
Дополнительно функция умеет создавать копию маленькой картинки в формате webp. Картинка webp хранится на сайте в папке /upload/resize_cache/askaron.api/webp/. Ресайзенные картинки webp удаляются в случае удаления основной картинки с сайта.
Параметры функции:
mixed $file - Точно такой же, как для \CFile::ResizeImageGet.
Идентификатор файла из таблицы b_file или массив описания файла (Array(FILE_NAME, SUBDIR, WIDTH, HEIGHT, CONTENT_TYPE)), полученный методом GetFileArray.
width и height не обязательные. Если заданы, то картинка ресайзится. Если не заданы, то будет подставлено 100000
bool $bConvertWebp = false - если задан, то для картинок с расширениями jpg, jpeg, gif, png, bmp будет предпринята попытка сделать копию в webp.
В случае успешной конвертации в webp в ответе в поле "src" будет записан путь к картинке webp. Иначе останется пусть сделанный \CFile::ResizeImageGet.
int $resizeType = BX_RESIZE_IMAGE_PROPORTIONAL
Тип масштабирования для функции \CFile::ResizeImageGet:
BX_RESIZE_IMAGE_EXACT - масштабирует в прямоугольник $arSize c сохранением пропорций, обрезая лишнее;
BX_RESIZE_IMAGE_PROPORTIONAL - масштабирует с сохранением пропорций, размер ограничивается $arSize;
BX_RESIZE_IMAGE_PROPORTIONAL_ALT - масштабирует с сохранением пропорций за ширину при этом принимается максимальное значение из высоты/ширины, размер ограничивается $arSize, улучшенная обработка вертикальных картинок.
Подробнее в документации по \CFile::ResizeImageGet.
Ответ:
Функция возвращает массив с уменьшенной картинкой. В случае ошибки вернёт false.
Ответ аналогичен \CFile::ResizeImageGet, но в него добавлен параметр src_before_convert.
src_before_convert совпадает с src. Но если произошла конвертация в webp из другого формата, то src_before_convert и src не совпадают.
Примеры:
<?// ресайз только по ширине с сохранением пропоций?>
<?$arPhoto = \Askaron\Api\Func::getResize($photo, 100);?>
<img src="<?=$arPhoto["src"]?>" width="<?=$arPhoto["width"]?>" height="<?=$arPhoto["height"]?>" alt="">
Array
(
[src] => /upload/resize_cache/uf/9f3/xq4869x9wgik0ta5m047gsg2gsh4135m/100_100000_1/170221585813651289.jpg
[width] => 100
[height] => 79
[size] => 8430
[src_before_convert] => /upload/resize_cache/uf/9f3/xq4869x9wgik0ta5m047gsg2gsh4135m/100_100000_1/170221585813651289.jpg
)
<?// ресайз только по высоте с сохранением пропоций?>
<?$arPhoto = \Askaron\Api\Func::getResize($photo, false, 100);?>
<img src="<?=$arPhoto["src"]?>" width="<?=$arPhoto["width"]?>" height="<?=$arPhoto["height"]?>" alt="">
Array
(
[src] => /upload/resize_cache/uf/9f3/xq4869x9wgik0ta5m047gsg2gsh4135m/100000_100_1/170221585813651289.jpg
[width] => 127
[height] => 100
[size] => 11960
[src_before_convert] => /upload/resize_cache/uf/9f3/xq4869x9wgik0ta5m047gsg2gsh4135m/100000_100_1/170221585813651289.jpg
)
<?// ресайз по ширине и высоте с обрезанием и сохранением в webp ?>
<?$arPhoto = \Askaron\Api\Func::getResize($photo, 100, 100, true, BX_RESIZE_IMAGE_EXACT);?>
<img src="<?=$arPhoto["src"]?>" width="<?=$arPhoto["width"]?>" height="<?=$arPhoto["height"]?>" alt="">
или
<picture>
<source type="image/webp"
srcset="<?=$arPhoto["src"]?>" width="<?=$arPhoto["width"]?>" height="<?=$arPhoto["height"]?>"
>
<img src="<?=$arPhoto["src_before_convert"]?>" width="<?=$arPhoto["width"]?>" height="<?=$arPhoto["height"]?>" alt="" >
</picture>
Array
(
[src] => /upload/resize_cache/askaron.api/webp/uf/9f3/xq4869x9wgik0ta5m047gsg2gsh4135m/jpg_100_100_2/170221585813651289.webp
[width] => 100
[height] => 100
[size] => 9751
[src_before_convert] => /upload/resize_cache/uf/9f3/xq4869x9wgik0ta5m047gsg2gsh4135m/100_100_2/170221585813651289.jpg
)
getNoPhoto |
Описание курса
| getYearsPeriod
|