Open Source Faster Image Processing Library for C++
Create, Manipulate, Draw, Divide, Copy & Convert Popular Image Formats; Apply filters, divide two images, grid an image via Free C++ Library.
The libvips is an open source advanced image processing library that uses very low memory and performs very speedy operations. The library can easily handle large images and supports a decent range of image file formats, such as JPEG, TIFF, PNG, WebP, HEIC, FITS, Matlab, OpenEXR, PDF, SVG, HDR, PPM / PGM / PFM, CSV, GIF, Analyze, NIfTI, DeepZoom, and OpenSlide. It can easily load images via ImageMagick or GraphicsMagick, allowing it to work with formats like DICOM.
The libvips primitives are applied sensibly and some use techniques like run-time code generation helps speedy processing of images. In comparison to other image processing libraries, it was noted that libvips need little RAM and runs faster, especially on machines with multiple CPUs. This is mainly because of its intelligent architecture it uses which automatically divides the image workflows.
The library provides supports for a huge range of numeric types, from simple 8-bit int to the complex 128-bit. Most of the image processing libraries uses threaded operations but libvips on the other hand put the threading into the image IO system and assign a copy of the entire image pipeline to each thread for working on it. This horizontal threading style makes better use of processor caches and reduces locking.
The libvips library is an image processing library that offers better performance than many other libraries. The library has provided support for several important image processing features such as draw image, divide two images, draw a circle on an image, copy an image, paint an image into another image, draw a line on an image, cast an image, cache an image, add two images, make a gaussian image, read a point from an image, grid an image, save the image to JPEG file and many more.
At A Glance
An overview of libvips features.
- create Image
- Divide two images
- Draw a circle on image
- Copy an image,
- Paint image to another
- Draw a line on image
- Cast an image
- Cache an image
- Add two images
- Mak gaussian image
- Modify images
- converts image
- compare images
- image animation
- Display images
libvips supports popular image file formats listed below.
OpenImageIO can work with any C++ based programming language
- C++11 or higher
Getting Started with libvips
Clone the latest sources using the following command.
Install OpenImageIO via git command
git clone git://github.com/libvips/libvips.git
Building from git needs more packages, you’ll need at least gtk-doc and gobject-introspection.
Install libvips packages via git command
./autogen.sh make sudo make install
Faster Images Rendering via C++ API
The libvips library has provided functionality for faster image creation and manipulation on all the leading platforms. Some of the leading image processing libraries like ImageMagick and GD libraries are very powerful and provides advanced features for working with images but need a large amount of memory for processing images. On the other hand, libvips can do virtually the same actives like ImageMagick, but much faster and with a comparatively small memory footprint
Save Image to Other supported Formats
The open source libvips library has provided a set of operations that load and save images in a variety of formats. The library has included built-in support for saving images in popular formats like TIFF, JPEG, PNG, Analyze, PPM, OpenEXR, CSV, Matlab, Radiance, RAW, FITS, WebP, SVG, PDF, GIF, and VIPS. The VipsForeign can be used to load and save images in a variety of formats.
Faster Image Resizing
The open source libvips library gives software developers the power to resize images on the fly inside their own apps. First, you need to load the image from the images repository by providing an image name and complete address. After that, you can resize it to the specified width and height according to your needs. After that, you can save it the location of your choice with the new size.
Image Filtering via C++ API
Image filtering is a valuable feature which is used in various image processing and computer vision applications across the globe. The libvips library provides complete support for Image filtering via C++ commands. Features like smoothing, sharpening, and edge enhancement are some examples of Image processing operations implemented with filtering. The library also included PNG filters like difference to the left, average of left and up, adaptive , pick best neighbor predictor automatically, and no filtering. It also includes import filters that can load with libMagick and with OpenSlide.