|
1 | 1 | # High-level PHP binding for libvips
|
2 | 2 |
|
3 |
| -`php-vips` is a binding for [libvips](https://github.com/jcupitt/libvips), in |
4 |
| -line with [ruby-vips](https://github.com/jcupitt/ruby-vips), |
5 |
| -[pyvips](https://github.com/jcupitt/libvips/tree/master/python), the [libvips |
6 |
| -C++ API](https://github.com/jcupitt/libvips/tree/master/cplusplus) and the |
7 |
| -[libvips C API](https://github.com/jcupitt/libvips/tree/master/libvips). |
8 |
| -It aims to be small and simple, and to provide a stable, well-documented |
9 |
| -platform that conforms to [PHP standards |
10 |
| -recommendations](http://www.php-fig.org/psr/). |
11 |
| - |
12 |
| -libvips is fast and it can work without needing to have the |
13 |
| -entire image loaded into memory. Programs that use libvips don't |
14 |
| -manipulate images directly, instead they create pipelines of image processing |
15 |
| -operations starting from a source image. When the pipe is connected |
16 |
| -to a destination, the whole pipeline executes at once, streaming the image |
17 |
| -in parallel from source to destination in a set of small fragments. |
18 |
| - |
19 |
| -See the [benchmarks at the official libvips |
20 |
| -website](http://www.vips.ecs.soton.ac.uk/index.php?title=Speed_and_Memory_Use). |
21 |
| -There's also a [vips-php-bench]( |
22 |
| -https://github.com/jcupitt/php-vips-bench) repository with benchmarks against |
23 |
| -imagick and gd. |
24 |
| -There's a handy blog post explaining [how libvips opens |
25 |
| -files](http://libvips.blogspot.co.uk/2012/06/how-libvips-opens-file.html) |
26 |
| -which gives some more background. |
27 |
| - |
28 |
| -Extra functionality, such as an image thumbnailer, for example, is |
29 |
| -implemented in repositories which build on this one, and not incorporated |
30 |
| -directly in this code (though see `examples/`). |
31 |
| -As much of the binding as possible is auto-generated. This reduces |
32 |
| -maintenance effort, increases reliability, and makes it possible to |
33 |
| -reuse core libvips documentation. |
34 |
| - |
35 |
| -This |
36 |
| -module builds upon the `vips` binary extension, see: |
| 3 | +`php-vips` is a binding for [libvips](https://github.com/jcupitt/libvips) for |
| 4 | +PHP 7. |
| 5 | + |
| 6 | +libvips is fast and needs little memory. The [`vips-php-bench`]( |
| 7 | +https://github.com/jcupitt/php-vips-bench) repository tests |
| 8 | +`php-vips` against `imagick` and `gd`. On that test, and on my laptop, |
| 9 | +`php-vips` is around four times faster than `imagick` and needs 10 times less |
| 10 | +memory. |
| 11 | + |
| 12 | +Programs that use libvips don't manipulate images directly, instead they |
| 13 | +create pipelines of image processing operations starting from a source |
| 14 | +image. When the pipe is connected to a destination, the whole pipeline |
| 15 | +executes at once and in parallel, streaming the image from source to |
| 16 | +destination in a set of small fragments. |
| 17 | + |
| 18 | +This module builds upon the `vips` PHP extension, see: |
37 | 19 |
|
38 | 20 | https://github.com/jcupitt/php-vips-ext
|
39 | 21 |
|
40 |
| -You'll need to install that first. It's tested on Linux and OS X, |
| 22 | +You'll need to install that first. It's tested on Linux and OS X --- |
41 | 23 | Windows would need some work, but should be possible.
|
42 | 24 |
|
43 | 25 | ### Example
|
|
0 commit comments