C++ Template Image Processing Library.    

[ Introduction ]-[ News ]-[ Download ]-[ Screenshots ]-[ FAQ ]-[ Tutorial ]-[ Links ]-[ Forums-Eng ]-[ Forums-Fr ]-[ Reference ]-[ SourceForge Repository ]

FAQ : Frequently Asked Questions.

FAQ Summary

1. General information and availability

1.1. What is the CImg Library ?

The CImg Library is an open-source C++ toolkit for image processing.

It mainly consists in a (big) single header file CImg.h providing a set of C++ classes and functions that can be used in your own sources, to load/save, process and display images. It's actually a very simple and pleasant toolkit for coding image processing stuffs in C++ : Just include the header file CImg.h, and you are ready to handle images in your C++ programs.

1.2. What platforms are supported ?

CImg is designed with portability in mind. It is regularly tested on different architectures and compilers, and should also work on any decent OS having a recent C++ compiler. Before each release, the CImg Library is compiled under these different configurations : CImg has a minimal number of dependencies. In its minimal version, it can be compiled only with standard C++ headers. Anyway, it has interesting extension capabilities and can use external libraries to perform specific tasks more efficiently (Fourier Transform computation using FFTW for instance).

1.3. How is CImg distributed ?

The CImg Library is freely distributed as a complete .zip compressed package, hosted at the Sourceforge servers.
The package is distributed under the CeCILL license.

This package contains :

The CImg Library is a quite lightweight library which is easy to maintain (due to its particular structure), and thus has a fast rythm of release. A new version of the CImg package is released approximately every three months.

1.4. What kind of people are concerned by CImg ?

The CImg library is an image processing library, primarily intended for computer scientists or students working in the fields of image processing or computer vision, and knowing bases of C++. As the library is handy and really easy to use, it can be also used by any programmer needing occasional tools for dealing with images in C++, since there are no standard library yet for this purpose.

1.5. What are the specificities of the CeCILL license ?

The CeCILL license governs the use of the CImg Library. This is an open-source license which gives you rights to access, use, modify and redistribute the source code, under certains conditions. There are two different variants of the CeCILL license used in CImg (namely CeCILL and CeCILL-C, all open-source), corresponding to different constraints on the source files :

You are invited to read the complete descriptions of the the CeCILL-C and CeCILL licenses before releasing a software based on the CImg Library.

1.6. Who is behind CImg ?

CImg has been started by David Tschumperl at the beginning of his PhD thesis, in October 1999. He is still the main coordinator of the project. Since the first release at Sourceforge, a growing number of contributors has appeared. Due to the very simple and compact form of the library, submitting a contribution is quite easy and can be fastly integrated into the supported releases.

2. C++ related questions

2.1 What is the level of C++ knowledge needed to use CImg ?

The CImg Library has been designed using C++ templates and object-oriented programming techniques, but in a very accessible level. There are only public classes without any derivation (just like C structures) and there is at most one template parameter for each CImg class (defining the pixel type of the images). The design is simple but clean, making the library accessible even for non professional C++ programmers, while proposing strong extension capabilities for C++ experts.

2.2 How to use CImg in my own C++ program ?

Basically, you need to add these two lines in your C++ source code, in order to be able to work with CImg images :
  #include "CImg.h"
  using namespace cimg_library;
The CImg Library - C++ Template Image Processing Library