Awesome
OSS Imaging Libraries
List of all open-source imaging libraries and their strengths and weaknesses. Please help me improve this page! Submit pull requests for additions and corrections.
We're looking for a cross-platform library suitable for on-demand, server-side image processing. It should have the following attributes:
- Free-threaded (No shared graphics thread)
- Multi-tenanting-enabled (Multiple instances per process)
- Fast hq image decoding, encoding, and scaling
- At least accurate bicubic scaling must be implemented. Bicubic smoother & lanczos preferred.
- No memory leaks whatsoever
- Low RAM use
- Fast startup times
- Fast per-image processing times
- Secure
- Permissive license
Library | License | Language | Promising? | Comments |
---|---|---|---|---|
LibGD | Similar to MIT | C | yes | See LibGD.md |
Skia image_operations.cc | New BSD | C++ | Yes | |
Libvips | LGPL | C++ | yes | |
Cairo | LGPL 2.1 or MPL 1.1 | C | Yes | |
OpenCV | BSD | C++ | ||
OpenCV-Ruby | BSD | |||
OpenImageIO Github | BSD | C++ | Yes - very active | |
Pixman | MIT | C | Yes | |
CImg | CeCILL-C | |||
CxImage | zlib | C++ | ||
Leptonica | Apache | C | Yes | |
DevIL | LGPL | |||
PIL or Pillow | Similar to MIT/BSD | C | Tied to Python. Pillow is a community fork. | |
Magick++ as a part of ImageMagick | Apache | C++ | ||
FreeImage | GPL 2/3 OR FIPL | C | ||
SDL_Image | zlib license | |||
Adobe Generic Image Library | Boost Software License | C++ | No | Entirely C++ templates; part of Boost; no actual imaging algorithms. |
ExactImage | GPL 2 | |||
ImLib2 | Unclear | |||
Marvin | LGPL | Java | ||
Animal | GPL | C | ||
Gandalf | LGPL | C | ||
IM | MIT | C++ | ||
PIL | BSD-style | C/Python | ||
GMIC | CeCILL2 | C | ||
FrameWave | Apache V2.0 | C | AMD's alternative to IPP. Claims to also work decently on Intel | |
modpagespeed kernel/image | Apache 2 | C++ | Offers box/area averaging resizing, Google's page optimization apache module |
Uncategorized - need to organize
https://github.com/mosra/magnum http://gfxprim.ucw.cz/
https://github.com/mono/csharpplugin <- Create .NET wrappers from header files (better than SWIG)
List of imaging libraries with lisp bindings
http://stackoverflow.com/questions/11816571/light-weight-c-image-library
http://www.tecgraf.puc-rio.br/im/
http://www.exactcode.com/site/open_source/exactimage/releases/ GPL
https://github.com/cinder/Cinder/blob/ae580c2cb0fc44d0a99b233dbefdf736f7093209/src/cinder/ip/Resize.cpp Cinder Modified BSD
Optimization resources
https://github.com/rflynn/imgmin
Halide, a language for optimized image processing - Very promising!
liborc
.NET
https://github.com/praeclarum/CrossGraphics
Graphics Gems
https://github.com/erich666/GraphicsGems https://github.com/erich666/GraphicsGems/blob/master/gemsiii/filter.c https://github.com/erich666/GraphicsGems/blob/master/gemsiii/bitmap.c
Image servers
https://github.com/buaazp/zimg ImageMagick-based, async https://github.com/kristopolous/apophnia ImageMagick-based
https://github.com/beetlebugorg/mod_dims ImageMagick-based
https://github.com/3078825/ngx_image_thumb LibGD based
https://github.com/hudora/huImages PIL based
https://github.com/lovell/sharp libvips based for Node
https://github.com/ipconfiger/pyImageServer
https://github.com/sdepold/node-imageable-server
https://github.com/agschwender/pilbox
Scaling-only resources
https://code.google.com/p/imageresampler/
github/jrmuizel/image-scaling: Porting Skia scaling to Emscripten
https://code.google.com/p/java-image-scaling/
https://github.com/tmiddelkoop/ImageResize
https://github.com/jrmuizel/pixman-scaler
Imaging/graphics libraries that don't offer significant image scaling abilities
Library | License | Platforms | Language |
---|---|---|---|
ccv | MIT | C++ | |
GDAL | MIT | ? |
Exisitng comparisons
http://www.vips.ecs.soton.ac.uk/index.php?title=Speed_and_Memory_Use http://randomfoo.net/2013/02/24/performance-comparison-of-image-libraries-revisited http://leocharre.com/articles/faster-image-resizing-in-linux/
Chainable image processing frameworks with GUIs
MathMap - https://github.com/schani/mathmap
Vips - http://www.vips.ecs.soton.ac.uk/index.php?title=Libvips
https://code.google.com/p/imagestack/
iOS specific
https://github.com/BradLarson/GPUImage
Go-lang
https://github.com/disintegration/imaging
Windows APIs
Windows Imaging Components StrechDIBits DrawDIB
Image resizing and transformation reading
- http://msn.iecs.fcu.edu.tw/report/data/ori_paper/2005-9-29/A%20fast%20edge-oriented%20algorithm%20for%20image%20interpolation.pdf
- http://gmic.sourceforge.net/gimp.shtml
- http://en.wikipedia.org/wiki/2xSaI#2.C3.97SaI
- http://www.compuphase.com/graphic/scale.htm
Unsorted
https://github.com/psobot/smartcrop
Finding more libraries on GitHub
https://github.com/search?l=C%23&p=2&q=stars%3A%3E1+graphics&ref=searchresults&type=Repositories