What is CImg?
The Library is a small and open-source C++ library for image processing, designed with these properties in mind :
|  | defines classes and methods to manage images in your own C++ code. You can use 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... | 
|  | defines a single image class able to 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. | 
|  | is self-contained, thread-safe and 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,...). | 
|  | is lightweight. It is made of a single header file CImg.h that must be included in your C++ source. It defines only four different classes, encapsulated in the namespace cimg_library. It can be compiled using a minimal set of standard C++ and system libraries only. No need for exotic or complex dependencies. | 
|  | Although not mandatory, can use functionalities of external tools/libraries such as Board, FFMPEG, FFTW3. GraphicsMagick, ImageMagick, Lapack, libcurl, libjpeg, libpng, libtiff, Magick++, OpenEXR OpenCV OpenMP or XMedCon. Moreover, a simple plug-in mechanism allows any user to directly enhance the library capabilities according to his needs. | 
|  | is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (compatible with the GNU GPL) licenses. It can be used in commercial applications. | 
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.
Book (En/Fr)

 
        Authors
Licenses
        The  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),
        or the
        CeCILL License (GPL-compatible).
        Most of the other package files are distributed under the
        CeCILL License.
        Both are open-source licenses, the CeCILL-C being less restrictive than the CeCILL.
        The  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.
      
Learn More
Quick History
        The development of the  Library began at the end of 1999, when I started my PhD thesis
        in the  Lab
        at 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  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 everyone would like to find in a good C++ image processing framework.
 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  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 everyone would like to find in a good C++ image processing framework.
        I am now a permanent researcher of the   institution,
        working in the
         institution,
        working in the  group at the
          group at the  lab in Caen/France.
        I am still using, maintaining and updating the  Library, and will probably do it for the next couple of years.
          lab in Caen/France.
        I am still using, maintaining and updating the  Library, and will probably do it for the next couple of years.
      
How to Help?
The Library is an open-source C++ library which is mainly developped during free time. If you enjoy using , you may contribute to the project in different ways. This will motivate me to continue the work.