dinargab/helpers

此包的最新版本(0.0.3)没有可用的许可证信息。

日常生活中的小助手(希望不止一个)

0.0.3 2023-12-20 10:16 UTC

This package is auto-updated.

Last update: 2024-09-18 16:15:20 UTC


README

只是测试库

如何使用

ImageManipulator 主要对象目前有 2 个方法

  • resize - 方法减小图像大小。适用于 jpg 和 png。仅在预先通过 setResizer 方法安装了 Resizer 后才有效。目前可以使用标准 Resizer,它使用 PHP 的标准函数更改图像大小,以及 ResizerBitrix,它使用 CFile::ResizeImageGet(要工作,需要传递 BitrixImg Adapter 类型的对象)

  • convertToWebp - 方法将图像转换为 .webp 格式。

目前这两个方法都将图像保存在与原始文件相同的目录中(对于 Bitrix 的情况除外:resize 将图像保存在 upload/resize_cache/ 目录中,然后是图像的路径)

使用示例

创建图像

$imgFile = new ImgFile('/upload/mechanoobrab_service.jpg');

创建 ImageManipulator 类对象

$imageManipulator = new ImageManipulator();

创建一个可用的 Resizer 并将其设置到 ImageManipulator 中

  • Resizer - 使用标准 PHP 方法,仅需要 GD 库
  • ResizerBitrix - 在底层使用 Bitrix Resizer。
  • ResizerImagick - 使用 Imagick 扩展
$imageManipulator->setResizer(new Resizer());

将图像转换为 WebP

$webpImage = $imageManipulator->convertToWebp($imgFile);

调整图像大小

$resizedImage = $imageManipulator->resize($imgFile, 300, 400);

将调整大小的图像转换为 Webp

$webpResized = $imageManipulator->convertToWebp($resizedImage);

绘制图像 - PictureRenderer 接受一个带有已安装 Resizer 的 ImageManipulator 类对象作为输入,并使用 ImageManipulator 生成文件和渲染 picture 标签

$pictureRenderer = new PictureRenderer($imageManipulator);

在 render 方法中,我们传递原始文件和包含参数的数组:数组键是 media 属性的值,值是包含两个元素的数组,分别是新图像的宽度和高度

$pictureTag = $pictureRenderer->render($imgFile, [
    '(max-width: 650px)' => [
        200, 100
    ],
    '(max-width: 1080px)' => [
        300, 150
    ],
    '(min-width: 1080px)' => [
        500, 300
    ]
]);