rokka / imagine-vips
libvips adapter for imagine
Installs: 192 450
Dependents: 3
Suggesters: 3
Security: 0
Stars: 41
Watchers: 4
Forks: 8
Open Issues: 11
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-10-26 10:26:48 UTC
README
This package provides a libvips integration for Imagine. The VIPS image processing system is a very fast, multi-threaded image processing library with low memory needs.
Version 8.7 or higher of libvips is highly recommended. paste
and rotate
by angles other than multipliers of 90 are not supported with older versions of libvips.
You either need the PHP FFI extension (recommended, since that's the currently supported way by the libvips maintainer) or the php-vips-ext extension version 1.0.8 or higher (you need to install that manually). And the php-vips classes (automatically installed by composer)
The most (to us at least) important stuff is implemented. There may be edge cases, which are not covered yet, but those will be hopefully fixed soon. Report them, if you encounter one.
Even it this is not a 1.0.0 release yet, the library is somehow battle tested as we use it on rokka.io.
Installation
Just run the following
composer require rokka/imagine-vips
and then you can use it like any other Imagine implementation with eg.
$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')
Missing stuff
Needs vips 8.6 or higher:
- paste
- rotate by angles other than multipliers of 90
Not implemented yet
- Complete Drawer support, only text is.
- Methods:
- fill
- histogram
- Filters:
- colorize
Most of them are not that important to us, so any contributions are welcome. Drawer for example may be a low hanging fruit, if you want to get into it.
Layers and Animated gifs
If you have vips 8.7.0, layers and animated gifs should work like with imagick.
Saving files
Natively supported by libvips for saving are jpg, png, webp and tiff. If you have vips 8.7.0 with imagemagick support, it will use vips "magicksave" for all other formats. It not, this adapter falls back to the Imagick or GD implementation.
Contribution
Any contribution is very appreciated, just file an issue or send a Pull Request.