libvips/libvips
FreeA fast image processing library with low memory needs.
About libvips/libvips
libvips is a demand-driven, horizontally threaded image processing library designed for speed and low memory usage. It offers over 300 operations covering arithmetic, histograms, convolution, morphological operations, frequency filtering, colour, resampling, statistics, and more. It supports a wide range of numeric types (8-bit int to 128-bit complex) and images with any number of bands. It handles many image formats including JPEG, JPEG 2000, JPEG XL, TIFF, PNG, WebP, HEIC, AVIF, FITS, Matlab, OpenEXR, PDF, SVG, HDR, PPM/PGM/PFM, CSV, GIF, Analyze, NIfTI, DeepZoom, and OpenSlide, with additional support via ImageMagick or GraphicsMagick for formats like DICOM. It provides native bindings for C, C++, and command-line, plus full bindings for Ruby, Python, PHP, C#/.NET, Go, Lua, Crystal, Elixir, Java, and Nim. libvips is used by projects such as Mastodon, sharp (Node.js), imgproxy, wsrv.nl, bimg, Ruby on Rails, CarrierWave, and MediaWiki. Its official GUI is nip4, a combination of a spreadsheet and photo editor.
Key Features
Pros & Cons
- Exceptionally fast processing with low memory footprint compared to alternatives
- Comprehensive set of over 300 image operations
- Extensive format support, including modern and specialized formats
- Multi-language bindings make it accessible from many programming environments
- Demand-driven execution enables efficient pipelined and threaded processing
- Proven reliability through use in high-traffic production services