dinargab / helpers
此包的最新版本(0.0.3)没有可用的许可证信息。
日常生活中的小助手(希望不止一个)
0.0.3
2023-12-20 10:16 UTC
Requires
- php: >=8.0
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 ] ]);