Ресайз на лету изображений в 1C-Bitrix

  • 2019-03-03
  • Дмитрий М.
  • 1971

Ресайз на лету изображений в 1C-Bitrix

<p> В API Bitrix есть функция <b>CFile::ResizeImageGet.</b> </p> <blockquote class="bxhtmled-quote"> <i>Метод уменьшает картинку и размещает уменьшенную копию в папку <b>/upload/resize_cache/путь</b>. Один раз уменьшив изображение получаем физический файл, который позволяет при последующих обращениях не проводить операции по уменьшению изображения. При следующем вызове метод вернет путь к уменьшенному файлу.</i> </blockquote> <p> Для того чтобы изменить размер уже загруженных изображений и вывести их, необходимо в нужном месте вставить следующий код: </p> <p> </p> <pre class="line-numbers"><code class="language-php">&lt;? $resize_image = CFile::ResizeImageGet($arItem["PREVIEW_PICTURE"]['ID'], Array("width" =&gt; НОВАЯ_ШИРИНА, "height" =&gt; НОВАЯ_ВЫСОТА), BX_RESIZE_IMAGE_EXACT, false); ?&gt; &lt;img alt="&lt;?=$arItem['NAME'];?&gt;" src="&lt;?=$resize_image['src'];?&gt;"/&gt;<br></code> </pre> <br> <p> Тип масштабирования: </p> <ul> <li>BX_RESIZE_IMAGE_EXACT - масштабирует в прямоугольник $arSize c сохранением пропорций, обрезая лишнее;</li> <li>BX_RESIZE_IMAGE_PROPORTIONAL - масштабирует с сохранением пропорций, размер ограничивается $arSize;</li> <li>BX_RESIZE_IMAGE_PROPORTIONAL_ALT - масштабирует с сохранением пропорций за ширину при этом принимается максимальное значение из высоты/ширины, размер ограничивается $arSize, улучшенная обработка вертикальных картинок.</li> </ul>

05.08.2019 01:47:08

63775-1.jpg

63775-1.jpg

Ресайз на лету изображений в 1C-Bitrix

Ресайз на лету изображений в 1C-Bitrix

Появилась необходимость уменьшить размер изображения выводимых на сайте изображений: в списке каталога уменьшить размер превью изображений.

Перезаливать все изображения товаров для того чтобы настройками инфоблока они были уменьшены не эффективно да и если измениться требования к изображениям опять придутся перезаливать всё.

Поэтому логичнее воспользоваться штатными средствами API Bitrix и ресайзить необходимые изображения на лету.

В API Bitrix есть функция CFile::ResizeImageGet.

Метод уменьшает картинку и размещает уменьшенную копию в папку /upload/resize_cache/путь. Один раз уменьшив изображение получаем физический файл, который позволяет при последующих обращениях не проводить операции по уменьшению изображения. При следующем вызове метод вернет путь к уменьшенному файлу.

Для того чтобы изменить размер уже загруженных изображений и вывести их, необходимо в нужном месте вставить следующий код:

<? 
$resize_image = CFile::ResizeImageGet($arItem["PREVIEW_PICTURE"]['ID'],
Array("width" => НОВАЯ_ШИРИНА, "height" => НОВАЯ_ВЫСОТА),
BX_RESIZE_IMAGE_EXACT, false);
?> 
<img alt="<?=$arItem['NAME'];?>" src="<?=$resize_image['src'];?>"/>

Тип масштабирования:

  • BX_RESIZE_IMAGE_EXACT - масштабирует в прямоугольник $arSize c сохранением пропорций, обрезая лишнее;
  • BX_RESIZE_IMAGE_PROPORTIONAL - масштабирует с сохранением пропорций, размер ограничивается $arSize;
  • BX_RESIZE_IMAGE_PROPORTIONAL_ALT - масштабирует с сохранением пропорций за ширину при этом принимается максимальное значение из высоты/ширины, размер ограничивается $arSize, улучшенная обработка вертикальных картинок.


Статья была полезна? Поблагодарите автора.

Возврат к списку

Другие статьи