mwarcz / segami
PHP库,允许您编辑图像尺寸、转换图像格式、缓存生成的图像、记录缓存的生成图像的最后一次访问、从缓存中删除长时间未使用的图像,所有这些操作都基于图像名称。
v2.0.0
2024-06-29 10:32 UTC
Requires
- php: ^8.1
This package is auto-updated.
Last update: 2024-09-29 11:10:39 UTC
README
Segami
Segami是一个简单的PHP库,允许编辑图像尺寸、转换图像格式、缓存生成的图像、记录缓存的生成图像的最后一次访问、从缓存中删除长时间未使用的图像,所有这些操作都基于图像名称中的后缀。
主要功能
- 转换图像格式
- 库的基本功能是将图像转换为各种位图格式(PNG、GIF、JPEG、WebP等)。
- 示例:
sample.png@.jpg,sample.png@.webp
- 创建图像裁剪
- 可选功能允许您按所需尺寸裁剪图像。
- 示例:
sample.png@c200x100.png,sample.png@c300.jpg
- 调整图像大小
- 可选功能允许您在所需尺寸和填充类型(填充、包含、覆盖)中更改图像大小。
- 示例:
sample.png@r200x100_cover.png,sample.png@r300.jpg
- 设置图像质量/压缩
- 可选功能可设置图像质量/压缩,这会影响结果的文件大小和所选格式的压缩。
- 示例:
sample.png@q80.jpg,sample.png@q50.webp
- 存储生成的图像(缓存)
- 库允许将生成的图像存储在缓存目录中,以便快速检索生成的图像,因为图像名称精确地定义了其属性。
- 在后台规范化图像文件名以避免不必要的重复。
- 示例1:
sample.png@c200.png=sample.png@c200x200.png - 示例2:
sample.png@r100x100_cover.png=sample.png@r100_r.png
- 示例1:
- 自动从缓存中删除长时间未使用的图像
- 库提供删除先前存储的图像的功能,以帮助清理长时间未使用的图像的磁盘空间。
- 限制器限制所需图像的名称
- 可选地,可以限制修改原始图像的图像名称。
- 建议在启用缓存存储时限制图像名称,以便潜在的攻击者难以攻击您。
要求
- PHP 8.1+
- 强制可选
- ext-gd
- ext-imagick 与安装的 ImageMagick
- 强制可选
安装
Segami库可在 Packagist 上找到,并通过 Composer 安装是推荐的安装方式。
只需在终端中运行命令即可
composer require mwarcz/segami
或手动添加到 composer.json 文件中
{
"require": {
"php": "^8.1",
"mwarcz/segami": "dev-master"
}
}
使用
库可能的简单基本使用的示例
$segami = new Segami([ // Selected path to dir with original images 'path_to_original_images' => __DIR__ . '/original', // Selected path to dir with generated images 'path_to_generated_images' => __DIR__ . '/generated', // Selected plugins for generating images 'plugin' => [ // CorePlugin is required minimum - enable core name parsing and image format conversion 'core' => new CorePlugin(), // Optional ResizePlugin - enable/add possibility resize image 'resize' => new ResizePlugin(), // Optional QualityPlugin - enable/add possibility quality image 'quality' => new QualityPlugin(), ], // Selected limiter with rules for generated images 'limiter' => new FreeImageLimiter(), // Selected image engine 'image_factory' => new ImageImagickFactory(), // Selected logger for logging access to images 'image_logger' => new ImageLoggerNone(), ]); try { $segami->smartReturnImage($_GET['image'], isset($_GET['cache'])); } catch (\Throwable $e) { http_response_code(404); }
存储库包含各种用例的样本集
关于Segami库的功能和使用案例的更详细信息,请参阅即将发布的文档。
- 创建生成的图像的名称
- 为限制生成的图像准备限制器
- 待办事项
许可证
Segami遵循MIT许可证。
待办事项路线图
查看捷克语版本。