Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

possible new high-performance backend? #615

Closed
jcupitt opened this issue Sep 21, 2016 · 10 comments
Closed

possible new high-performance backend? #615

jcupitt opened this issue Sep 21, 2016 · 10 comments

Comments

@jcupitt
Copy link

jcupitt commented Sep 21, 2016

Hi, I've made a PHP binding for libvips. It's quite a bit faster than imagick or gd and generally needs much less memory. Would there be any interest in experimenting with a vips backend for Intervention\Image? I'd be happy to help, if I can.

The module is here:

https://github.com/jcupitt/php-vips

I made a tiny thing to benchmark it against imagick and gd:

https://github.com/jcupitt/php-vips-bench

On that test anyway it's at least 4x faster and needs at least 4x less memory. There are more benchmarks here:

https://github.com/jcupitt/libvips/wiki/Speed-and-memory-use

It's the library behind sharp, the popular high-performance image resize package for node.js:

http://sharp.dimens.io/en/stable/performance/

Of course, please close this issue if it's inappropriate.

@jcupitt
Copy link
Author

jcupitt commented Sep 22, 2016

I remembered another relevant benchmark. Carrierwave is one of the leading image uploading modules for Rails, and there is a vips backend. This repo benchmarks against rmagick and mini_magick:

https://github.com/stanislaw/carrierwave-vips-benchmarks

Those results are a bit old now, but on that typical uploader workload, vips is about 3x faster for jpg, 8x faster for png, and needs 4x less memory.

@jcupitt
Copy link
Author

jcupitt commented Nov 24, 2016

Last post on this, but php-vips is now at 1.0. The ext part is in pecl:

https://pecl.php.net/package/vips

so it's easier to install, the PHP layer is fully documented:

https://jcupitt.github.io/php-vips/docs/classes/Jcupitt.Vips.Image.html

and it's in production use on at least a couple of sites. libvips itself (the underlying image processing library) is used by wikipedia, tumblr, booking.com, etc. etc.

@kleisauke
Copy link

I'm interested to experiment with a vips backend for Intervention Image. If I got some spare time, I could try to implement a driver for vips into Intervention Image.

Self-disclosure:
We have used the Intervention Image library in the past for our image cache and resize proxy website but for peformance reasons we decided to switch to php-vips. Source code of our proxy can be found here.

@jarodium
Copy link

+1

1 similar comment
@dzanfardino
Copy link

+1

@mindplay-dk
Copy link

Anyone started on this? :-)

@jcupitt
Copy link
Author

jcupitt commented Nov 20, 2017

There's a libvips imagine backend here:

https://github.com/rokka-io/imagine-vips

Might be relevant.

@andrefelipe
Copy link

Found one intervention driver here https://github.com/osiemsiedem/intervention-image-vips-driver

Not sure how to use it yet, it's undocumented, but still, it's a start

@Lustmored
Copy link

Hi,

I have taken this under my radar and spent some time to implement missing commands. You can see the result in my fork:

https://github.com/Lustmored/intervention-image-vips-driver

I hope to get it merged into main package and then pursue upstreaming into intervention if there will be interest for that.

Any feedback would be very welcome :)

@olivervogel
Copy link
Member

olivervogel commented Dec 8, 2023

I will see what I can do to add support for VIPS. Duplicate of #1119

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants