rokka/imagine-vips

imagine的libvips适配器

0.31.0 2022-10-12 16:32 UTC

README

Static analysis Latest Stable Version

本包为libvips集成提供了Imagine。VIPS图像处理系统是一个非常快速、多线程的图像处理库,具有低内存需求。

强烈推荐使用libvips 8.7或更高版本。使用较旧版本的libvips不支持除90的倍数外的角度的pasterotate

您需要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即可。