claramente / claramente.webp
Module for resizing and converting images to webp format
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:bitrix-module
Requires
- php: >=8.1
- composer/installers: ^1.0|^2.0
This package is auto-updated.
Last update: 2025-08-01 10:46:57 UTC
README
Claramente.webp
Модуль сжатия изображений в формат webp для Bitrix.
Назначение
Модуль содержит расширенный класс CFileExt
с дополнительным методом статическим методом ResizeToWebpImageGet
.
Метод уменьшает картинку и размещает уменьшенную копию в папку /upload/resize_cache и при этом конвертирует изображение в формат webp
вне зависимости от формата исходного изображения.
Опционально метод позволяет закрасить прозрачные участки изображения в указанный цвет.
Установка
Модуль можно установить через composer:
composer require claramente/claramente.webp
Установка модулей Битрикс по умолчанию производится в папку bitrix/modules
(автоматически через plugin composer/installers
).
Если необходима установка модуля по пути local/modules
, то необходимо внести изменения в раздел extra
в вашем composer.json
, указав путь для установки Битрикс модулей:
"extra": {
"installer-paths": {
"local/modules/{$name}/": ["type:bitrix-module"]
}
},
И выполнив переустановку модуля командой composer require claramente/claramente.webp
.
После установки модуль необходимо активировать через административный раздел Битрикс.
Использование
Метод сжатия
Метод ResizeToWebpImageGet
схож со стандартным методом Битрикс \CFile::ResizeImageGet
и используется аналогично.
$resizeResult = \Claramente\CFileExt::ResizeToWebpImageGet( file: $file, // Файл arSize: $arSize, // Размеры resizeType: $resizeType, // Тип масштабирования (опционально) bInitSizes: $bInitSizes, // Флаг возвращения размеров (опционально) arFilters: $arFilters, // Фильтры (опционально) bImmediate: $bImmediate, // Флаг для обработчика события OnBeforeResizeImage (опционально) jpgQuality: $jpgQuality, // Качество JPG при масштабировании (опционально) backgroundColor: $backgroundColor); // Фоновый цвет \Bitrix\Main\File\Image\Color (опционально)
Подробнее о передаваемых параметрах можно прочитать здесь.
Закраска фона
В качестве параметра backgroundColor для закраски прозрачных участков изображения передается \Bitrix\Main\File\Image\Color. Его можно создать через статический метод createFromHex
:
$backgroundColor = \Bitrix\Main\File\Image\Color::createFromHex('f3f3f3');
Автоматизация
Удобным решением будет создание и использование статического метода, который в зависимости от активации и деактивации данного модуля будем использовать стандартный метод \CFile::ResizeImageGet
или расширенный метод \Claramente\CFileExt::ResizeToWebpImageGet
:
public static function resizeImageGetExt( $file, $arSize, $resizeType = BX_RESIZE_IMAGE_PROPORTIONAL, $bInitSizes = false, $arFilters = false, $bImmediate = false, $jpgQuality = false, $backgroundColor = null ): mixed { // Пережатие изображения if (class_exists('\Claramente\CFileExt')) { $resizeResult = \Claramente\CFileExt::ResizeToWebpImageGet( file: $file, arSize: $arSize, resizeType: $resizeType, bInitSizes: $bInitSizes, arFilters: $arFilters, bImmediate: $bImmediate, jpgQuality: $jpgQuality, backgroundColor: $backgroundColor); } else { $resizeResult = \CFile::ResizeImageGet( file: $file, arSize: $arSize, resizeType: $resizeType, bInitSizes: $bInitSizes, arFilters: $arFilters, bImmediate: $bImmediate, jpgQuality: $jpgQuality); } // Возвращаем результат return $resizeResult; }