Обрезка и уменьшение изображений в Битрикс.

image

31.03.15
Comments 0

Всем привет, в этой статье хочу показать вам, как можно уменьшить размер изображений в Битрикс стандартными средствами. Это бывает необходимо для того чтобы уменьшить вес и размер превью изображения для ускорения загрузки страницы сайта, так как в большинстве случаев пользователи не заботятся об обработке картинок перед их публикацией.

Допустим, у вас есть фотогалерея, для ее создания вы воспользовались стандартным компонентом news.list и скопировали его шаблон к себе в тему.

Вызов изображения выглядит следующим образом

<? foreach ($arResult["ITEMS"] as $arItem): ?>
	img class="img-responsive" src="?=$arItem[" alt="image" />" alt="<?=$arItem["PREVIEW_PICTURE"]["ALT"] ?>" title="<?=$arItem["PREVIEW_PICTURE"]["TITLE"] ?>" />
<? endforeach; ?>

Для того чтобы изменить размер изображения мы создадим в папке шаблона компонента файл result_modifier.php

И поместим туда следующий код

<?
foreach( $arResult["ITEMS"] as $key => $img){

    $resize = CFile::ResizeImageGet(
        $img['PREVIEW_PICTURE'],
        Array('width'=>150,
        'height'=>150),
        BX_RESIZE_IMAGE_EXACT,
        true
    );

    $arResult["ITEMS"][$key]['PREVIEW_PICTURE']['SRC'] = $resize['src'];
}

Файл result_modifier.php служит для обработки данных компонента непосредственно перед их выводом. А для манипуляции с изображениями мы воспользовались функцией Битрикс API CFile::ResizeImageGet.

Комментировать