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
)




0  


 getNoPhoto | Описание курса | getYearsPeriod