The CImg Library 1.1.7 review

by on

The CImg Library is a C++ Template Image Processing Library. It is portable (Unix/X11, Windows, MacOS X), efficient, and simple to

License: CeCILL (CeCILL Free Software License Agreement)
File size: 0K
Developer: David Tschumperle
0 stars award from

The CImg Library is a C++ Template Image Processing Library.

It is portable (Unix/X11, Windows, MacOS X), efficient, and simple to use.

Here are some key features of "The CImg Library":
The CImg Library is an open source C++ toolkit for image processing. It provides simple classes and functions to load, save, process and display images in your own C++ code.
It is highly portable and fully works on Unix/X11, Windows, MacOS X and FreeBSD operating systems. It should compile on other systems as well (eventually without display capabilities).
It consists only of a single header file CImg.h that must be included in your C++ program source.
It contains useful image processing algorithms for image loading/saving, displaying, resizing/rotating, filtering, object drawing (text, lines, faces, curves, ellipses,..), etc...
Images are instancied by a class able to represent images up to 4-dimension wide (x,y,z,v) (from 1-D scalar signals to 3-D volumes of vector-valued pixels), with template pixel types.
It depends on a minimal number of libraries : you can compile it only with standard C libraries. No need for exotic libraries and complex dependencies.
Additional features appear with the use of ImageMagick, libpng or libjpeg: install the ImageMagick package or link your code with libpng and libjpeg to be able to load and save compressed image formats (GIF,BMP,TIF,JPG,PNG,...). Available for any platforms.

What's New in This Release:
New features :
Added 'operator()' for bit shift operations on all images pixels.
Added most of mathematical operators in the 'CImgList' class.
Added new demo 'Image Waves' in 'examples/CImg_demo.cpp'.
Added mouse wheel support on Windows.

Optimizations / Modifications :
Renamed class 'CImgl' into 'CImgList', also renamed macro 'cimgl_map' to 'cimglist_map'. Backward compatibility is assured in 1.1.7 version, but think about replacing the old names by the new ones for future CImg versions.
Removed 'operator.
Recoded most of 'CImg< T >::get_resize()' function : linear interpolation performs now really faster, and an additional parameter allows to select between different conditions for border values.
Recoded 'CImg< T >::draw_line()' so that it now uses a classical Bresenham algorithm, avoiding rounding errors.
CImg is not compilable with VC++ 6.0 anymore. This compiler does not a decent job when dealing with template objects.

Bug corrections :
Corrected some functions that did not performed correctly on shared images.
Corrected small bug in 'plugins/primitives3d.h' in function 'CImg< T >::sphere()'.
Corrected 'CImg< T >::feature_selection()' when displaying 'CImg< bool >' images.
Corrected 'CImg< T >::load_cimg()' : is now able to load bool images.
And lot of minor bug corrections and optimizations ....

The CImg Library 1.1.7 keywords