Как сделать ресайз изображения или почему он может не работать?

Сделать ресайз или обрезку изображения можно примерно следующим образом: 

<? $file = CFile::ResizeImageGet($arItem["PREVIEW_PICTURE"], array('width'=>200, 'height'=>200), BX_RESIZE_IMAGE_EXACT, false); ?>
<img src="<?=$file['src']?>" alt="" />

Здесь наибольший интерес вызывает третий параметр, в зависимости от значения которого и будет выбран метод обрезки:

  • BX_RESIZE_IMAGE_EXACT - на выходе получается картинка с заданными размерами. При этом всё, что не влезает - обрезается;
  • BX_RESIZE_IMAGE_PROPORTIONAL - масштабирование с сохранением пропорций. При этом та часть изображения, которая не влезла в заданные размеры, будет обрезана;
  • BX_RESIZE_IMAGE_PROPORTIONAL_ALT - аналогично предыдущему, но адаптировано для вертикальных картинок. 

Если по какой-то причине, обрезка не сработала, то надо убедиться в том, что на вход первым параметром передаётся ID картинки или массив вида $arItem["PREVIEW_PICTURE"].

Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.