Using libvips as an alternative to ImageMagick
I have been using ImageMagick to resize large images into thumbnails as long as I remember.
Few weeks ago I encountered a server issue where several convert processes consumed most of the server's memory and things went haywire.
I started to look for alternatives: better performing image resizing software which consumes less processing power and memory.
Performance testing
I found a repository called speedtest-resize which compares various image resize algorithms.
I took few large images and converted them to 4 different sized thumbnails using fastjpeg and libvips, repeated the process 100 times and measured the time taken.
libvips is over 50% faster
I did not expect the difference to be that big, but libvips performed approximately 50-60% faster than ImageMagick - no matter what I threw at it. If you do some other adjustments besides resizing, you might lose some features over ImageMagick.
Using libvips
Using libvips's vipsthumbnail command is easy:
vipsthumbnail source.jpg -s 100x100 -o output.jpg[Q=90,optimize_coding,strip]
- -s [width]x[height] Output image target width and height
- -o path Output image file path
- Q=n Image quality/compression (n = 1-100, default 75)
- optimize_coding Turns on the libjpeg's coding optimizer[1]
- strip Strips all the metadata from the image
Conclusion
If you do a lot of server-side image resizing, I recommend you give libvips a try. It's faster – a lot faster.
See also
Notes
1. optimize_coding is described as "compute optimal Huffman coding tables", whatever that means.