locomotivemtl / charcoal-image-compression
通过压缩API提供程序处理图像压缩的Charcoal模块
Requires
- php: >=7.4
- ext-pdo: *
- locomotivemtl/charcoal-config: ^0.10.1
- locomotivemtl/charcoal-core: ^0.6.4
- locomotivemtl/charcoal-factory: ^0.4.2
- pimple/pimple: ^3.5
- tinify/tinify: ^1.5
Requires (Dev)
- locomotivemtl/charcoal-app: ^0.9.2
- php-coveralls/php-coveralls: ^2.2
- phpunit/phpunit: ^7.4
- squizlabs/php_codesniffer: ^3.6
Suggests
- locomotivemtl/charcoal-admin: Allows for managing and image compression and viewing results of compressions.
- locomotivemtl/charcoal-app: Needed to use the image compression module instead of the service provider for bootstrapping.
This package is auto-updated.
Last update: 2024-08-27 19:12:12 UTC
README
A Charcoal module to handle image compression through compression api providers
安装
首选(也是唯一支持的)方法是使用Composer
composer require locomotivemtl/charcoal-image-compression
依赖关系
必需
PSR
服务提供者
以下服务是通过使用 charcoal-image-compression 提供的
服务
image-compression
instance of\Charcoal\ImageCompression\Service\ImageCompression
image-compressor
instance of\Charcoal\ImageCompression\ImageCompressor
配置
压缩模块的配置是通过项目配置的模块键来完成的。一旦配置,Charcoal图像将自动连接到压缩模块。
示例:通过image_compression
定义的最小配置
"image_compression": { "providers": [/* … */] }
示例:通过modules
定义的最小配置
"modules": { "charcoal/image-compression/image-compression": { "providers": [/* … */] } }
示例:通过modules
定义的完整配置(带默认选项)
"modules": { "charcoal/image-compression/image-compression": { "registryObject": "charcoal/image-compression/model/registry", "batchConfig": { "fileExtensions": [ "jpg", "jpeg", "png" ], "basePath": "uploads" }, "providers": [/* … */] } },
模块选项
提供者
可以使用providers
键来列出和配置一些提供者,这些提供者负责在Charcoal和不同的API之间架起桥梁。每个提供者定义自己的选项。以下是一个为tinify提供者配置的示例。
{ "providers": [ { "type": "tinify", "key": "XXXXXX" } ] }
可以同时使用多个提供者,并将它们依次串联起来,以便如果某个提供者达到限制或失败,则将使用列表中的下一个提供者。
特殊提供者的列表
可用提供者的列表
用法
待办事项
默认情况下,如果提供者在模块配置中定义,Charcoal图像属性将在图像保存回调中将上传的图像压缩。必须使用将autoCompress
选项设置为true
的选项,这是默认行为。
脚本
提供了一个脚本来批量压缩服务器上的图像。
# Using default path from configuration vendor/bin/charcoal admin/image-compression/batch-compress # Using a custom path vendor/bin/charcoal admin/image-compression/batch-compress --path my/custom/path
图像压缩器
压缩模块还可以通过ImageCompressor
类作为独立模块使用。提供了一个容器服务来访问它。
// Fetch image conmpression from pimple container $this->imageCompressor = $container['image-compressor']; // The compress method is used to compress a source file path to a target path. $this->imageCompressor->compress($source, $target)
ImageCompressor
类将使用预定义的模块配置和提供者。对于自定义实现,请手动实例化提供者。
use Charcoal\ImageCompression\Provider\Tinify\TinifyProvider; $provider = new TinifyProvider([...]); $provider->compress($source, $target); // Or use the special Chain Provider to chain providers together use Charcoal\ImageCompression\Provider\Tinify\TinifyProvider; use Charcoal\ImageCompression\Provider\Chain\ChainProvider; $chainProvider = new ChainProvider([ new TinifyProvider([...]) ]); $chainProvider->compress($source, $target);
开发
要安装开发环境
composer install
要运行脚本(phplint、phpcs和phpunit)
composer test
API文档
- 自动生成的
phpDocumentor
API文档可在以下位置找到
https://locomotivemtl.github.io/charcoal-image-compression/docs/master/ - 自动生成的
apigen
API文档可在以下位置找到
https://codedoc.pub/locomotivemtl/charcoal-image-compression/master/
开发依赖
- [php-coveralls/php-coveralls][phpcov]
- [phpunit/phpunit][phpunit]
- [squizlabs/php_codesniffer][phpcs]
编码风格
炭黑图像压缩模块遵循炭黑编码风格
- PSR-1
- PSR-2
- PSR-4,因此自动加载由Composer提供。
- phpDocumentor注释。
- 编码标准请参考phpcs.xml.dist和.editorconfig。
可以使用
composer phpcs
执行编码风格验证/强制。还有自动修复工具composer phpcbf
。
致谢
许可证
炭黑遵循MIT许可证。详细信息请参阅LICENSE。