rokka/ imagine-vips
imagine的libvips适配器
Requires
- php: ^7.2 || ^8.0
- imagine/imagine: ^1.0
- jcupitt/vips: ^2.1.0 || ^1.0.3
- phenx/php-font-lib: ^0.5.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.8
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^8 || ^9
Suggests
- ext-gd: to use the GD implementation fallback for saving unsupported file formats
- ext-imagick: to use the Imagick implementation fallback for saving unsupported file formats
This package is auto-updated.
Last update: 2024-08-26 10:07:15 UTC
README
本包为libvips集成提供了Imagine。VIPS图像处理系统是一个非常快速、多线程的图像处理库,具有低内存需求。
强烈推荐使用libvips 8.7或更高版本。使用较旧版本的libvips不支持除90的倍数外的角度的paste
和rotate
。
您需要PHP FFI扩展(推荐,因为这是libvips维护者目前支持的方式)或版本1.0.8或更高版本的php-vips-ext扩展(您需要手动安装)。还有php-vips类(由composer自动安装)
最重要的功能已经实现。可能还有一些尚未覆盖的边缘情况,但希望它们很快就能得到解决。如果遇到,请报告。
即使这还不是1.0.0版本,该库也在某种程度上经过了实战测试,因为我们已经在rokka.io上使用了它。
安装
只需运行以下命令
composer require rokka/imagine-vips
然后您就可以像使用其他Imagine实现一样使用它,例如。
$imagine = new \Imagine\Vips\Imagine();
$size = new Imagine\Image\Box(40, 40);
$mode = Imagine\Image\ImageInterface::THUMBNAIL_INSET;
$imagine->open('/path/to/large_image.jpg')
->thumbnail($size, $mode)
->save('/path/to/thumbnail.png')
缺少的功能
需要vips 8.6或更高版本
- paste
- 除了90的倍数以外的角度旋转
尚未实现
- 完整的Drawer支持,只有文本。
- 方法
- fill
- histogram
- 过滤器
- colorize
其中大多数对我们来说并不那么重要,所以任何贡献都受欢迎。例如,Drawer可能是一个容易实现的功能,如果您想涉足其中。
图层和动画GIF
如果您有vips 8.7.0,图层和动画GIF应该可以像使用imagick一样工作。
保存文件
libvips原生支持保存jpg、png、webp和tiff。如果您有带有imagemagick支持的vips 8.7.0,它将使用vips "magicksave"保存所有其他格式。否则,此适配器将回退到Imagick或GD实现。
贡献
任何贡献都非常受欢迎,只需提交一个问题或发送一个Pull Request即可。