The CImg Library is a small, open source, C++ toolkit for image processing,
designed with these properties in mind :
CImg defines classes and methods
to manage images in your own C++ code. You can use it to load/save various file formats, access pixel values,
display/transform/filter images, draw primitives (text, faces, curves, 3d objects, ...), compute statistics,
manage user interactions on images, and so on...
CImg defines a single image class which can represent datasets having up to
4-dimensions (from 1d scalar signals to 3d hyperspectral volumetric images),
with template pixel types (bool,char,int,float,...).
It also handles image collections and sequences.
CImg is self-contained and thus highly portable. It fully works on
different operating systems (Unix,Windows,MacOS X,*BSD,...) and is compatible
with various C++ compilers (Visual C++,g++,clang++,icc,...).
CImg is lightweight. It is made of a single header file
that must be included in your C++ source. It defines only four different classes, encapsulated
in a namespace.
It can be compiled using a minimal set of standard C++ and system libraries. No need for exotic or complex dependencies.
CImg is a free, open-source library distributed under the
CeCILL-C (close to the GNU LGPL)
CeCILL (compatible with the GNU GPL)
licenses. It can be used in commercial applications.
CImg stands for Cool Image : It is easy to use, efficient and is intended to be
a very pleasant toolbox to design image processing algorithms in C++. Due to its generic conception, it can cover a wide range
of image processing applications.
with the help of many contributors around the world :
Gerd von Egidy
Arnold Meijster (Center for High Performance Computing and Visualization, University of Groningen/The Netherlands)
David G. Starkweather,
Vo Duc Khanh,
The CImg Library is an open-source product distributed under two distinct licenses :
the library core itself is dual-licensed and
can be governed either by the
CeCILL-C License (LGPL-like),
CeCILL License (GPL-compatible).
Most of the other package files are distributed under the
Both are open source licenses, the CeCILL-C being less restrictive than the CeCILL.
The CImg Library source code has been registered to the APP
(French Agency for the Protection of Programs) by the INRIA,
under registration number IDDN.FR.001.040004.000.S.P.2004.000.21000.
The Screenshots section illustrates some of the different source code examples provided in
the CImg package.
The Tutorial section shows the basic use of CImg classes
and functions with a small first code.
Online web statistics on the CImg website activity are available
here and below :
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 colleagues 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. As a result, the CImg library
has been always intended to be compact, easy to install and to use, multi-platform and generic.
It provides a lot of basic functions that any human would like to find in a C++ image processing framework.
I am now a permanent researcher of the
working in the
group at the
GREYC lab in Caen/France.
I am still using, maintaining and updating the CImg Library, and will probably do it for the next couple of years.
How to help ?
The CImg Library is an open source C++ library which is mainly developped during
free time. If you enjoy using CImg, you may contribute to the project
in different ways. This will motivate me to continue the work.
You can help CImg to be more widely known, by displaying a
CImg Flyer at work, in your lab or school
(available in .PDF or .JPEG formats).
You can report bugs, propose patches or new functionalities, using the CImgforums or
If you just want to say you've been happy with the library, you can send me a postcard from your place, to the following address : David Tschumperlé, GREYC (UMR CNRS 6072), Equipe IMAGE, 6 Bd du Maréchal Juin, 14050 Caen Cedex, FRANCE.
47 postcards received yet (I still have empty space on my wall ! :) ), from :
Copyrights (C) From october 2004, David Tschumperlé - GREYC UMR CNRS 6072, Image team.
Copyrights (C) January->September 2004, David Tschumperlé.
Copyrights (C) 2000->2003, David Tschumperlé - INRIA Sophia-Antipolis. Odyssée group.