承接 claramente/claramente.webp 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

claramente/claramente.webp

最新稳定版本:1.0.1

Composer 安装命令:

composer require claramente/claramente.webp

包简介

Module for resizing and converting images to webp format

README 文档

README

Claramente

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.

Подключение

После установки модуль необходимо активировать через административный раздел Битрикс.

Далее нужно добавить подключение модуля при помощи команды:

Bitrix\Main\Loader::includeModule('claramente.webp');

например в файле local/php_interface/init.php.

Использование

Метод сжатия

Метод 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;
    }

Лицензия

MIT. Вы можете посмотреть текст лицензии для подробной информации.

统计信息

  • 总下载量: 219
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-07-31