What is it ?

- The CImg Library is an open source toolkit for doing image processing in C++. 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 standart C libraries. No need for exotic libraries and complex dependencies.
- Additional features appear with the use of ImageMagick : install the ImageMagick package to be able to load and save compressed image formats (GIF,BMP,TIF,JPG,PNG,...). Available for any plateforms.
- Additional features appear with the use of LAPACK : link your code with the lapack library to be able to compute eigenvalues or eigenvectors of big matrices. Available for any plateforms.

> CImg stands for "Cool Image" : It is simple to use and efficient. It's like a STL for image processing !
> In the CImg package, a lot of examples are provided to help the developper in its first steps.

See Also :

- The Screenshots section shows examples of applications where CImg can be typically used.
- The Download section is the place to get the latest CImg Library package.
- The Tutorial section illustrate the basis of CImg classes and functions with a first code.

Author :

> David Tschumperlé
> With the help of people all around the web for contributing, debugging and porting CImg to other architectures : Thomas Martin, Renaud Peteri, Jean-Daniel Guyot, Thierry Thomas, ...

License :

> The CImg Library is distributed under the CeCiLL License (Free Software). This license is compatible with the Free Software Fundation's GPL license.
> The library has been mainly designed for teaching and research activities.
> The source code has been registered to the APP (French Agency for the Protection of Programs) by the INRIA.

Quick History :

> The development of the CImg Library began at the end of 1999, when I started my PhD thesis in the Lab at the Sophia Antipolis. It was designed to help me and my collegues developing various image processing algorithms, for datasets as simple as 2D scalar images, or as complex as 3D volumes of diffusion tensors. I also used it for courses on image processing I teached at the university. That's why the CImg library is intended to be quite generic, thanks to the pixel-template parameters and the high number of possible dimensions (four dimensions for an image). I must admit that the limit of 4 dimensions has never been a problem since I started the library (particularly since we can also use image lists in the CImg Library). Conversely, this limit permitted to implement very efficient functions and algorithms. To sum up, the CImg Library has been designed to be simple to use, and efficient. It provides a lot of basic functions that one would like to see in an image processing framework for C++ programming. Its simplicity, its tiny size and its efficiency are the three reasons for you to download and test it ! If you are interested, just go to the download section, or see the screenshots section, in order to see what CImg can do for you.
> I am now a permanent researcher of the institution, working in the group at the GREYC lab in Caen/France. I am still using, maintaining and updating the CImg Library.

How to contribute ?

> The CImg Library is an open source C++ library which is mainly developped during free time. If you enjoy using the CImg Library, you can contribute to the project in different ways. This will motivate me to continue the work.
> - You can report bugs, propose patches or new functionalities.
> - You can write tutorials or parts of the documentation.
> - You can send me a postcard from your city.
> - If you are rich, you can
> My coordinates (e-mail or mail) can be found on my web page.

Copyrights :

> Copyrights (C) 2000->2003, David Tschumperlé - INRIA Sophia-Antipolis. Odyssée group.
> Copyrights (C) January->September 2004, David Tschumperlé.
> Copyrights (C) From october 2004, David Tschumperlé - GREYC UMR CNRS 6072, Image group.