----------------------------------------------------------------------------------------


 CHANGES.txt : List the changes made between consecutive versions of The CImg Library


-----------------------------------------------------------------------------------------

*-----------------------------
*-----------------------------
* Changes from 1.0.7 to 1.0.8
*-----------------------------
*-----------------------------

 * Bug corrections :
    - Removed useless button/keyboard reinitialization in CImgDisplay events
    - Corrected bug in CImg<T>::load_dlm() and load_ascii() functions.
    - Corrected compile bug in CImg<T>::resize_halfXY() and CImg<T>::get_resize_halfXY().
    - Corrected and optimized CImg<T>::get_resize().

 * Optimizations / Modifications : 
    - Recoded CImg<T>::fill() for faster value filling.
    - Recoded CImg<T>::draw_graph(). IMPORTANT NOTE : ymin and ymax are now directed up to down, instead
      of down to up, in order to be more coherent with the draw_axeXY() function. This means you will
      probably have to swap the values of these two parameters in the function call, to get similar results
      to CImg 1.0.7 !!
    - Recoded CImg<T>::draw_gaussian() using tensors (parameters changed).
    - CImg is now successfully compiled using the option '-pedantic' with g++. Makefile has been modified.
    - CImg compiles with the DJGPP compiler (tested without display capabilities).
    - Added load/save support for 16bits PNM binary images.
    - Added interleaved mode support and template in constructor :
      template<typename t> CImg(const t *const data_buffer,dx,dy,dz,dv,bool interlaced)
    - Recoded parts of CImg<T>::eigen().
    - Optimized buffer copy in XImage, for faster image display under X11 (minor improvements).
    - Added fields in CImgStats, allowing to get the coordinates of the min/max pixels.
	
 * New features/functions :
    - Added CImg<T>::load_bmp() and save_bmp() to deal with uncompressed BMP formats, without using ImageMagick.
    - Added CImg<T>::vector(), CImg<T>::matrix() and CImg<T>::tensor().
    - Added CImg<T>::scroll() and CImg<T>::get_scroll to be able to scroll images.	
    - Added functions CImg<T>::get_FFT() and CImgl<T>::FFT() for Fast Fourier Transform.
    - Added CImgDisplay::move() to be able to move display windows at specific locations.
    - Added several region split in CImg<T>::get_split().
    - Added 'examples/mcf_levelsets.cpp' : Mean curvature flow of a 2D curve, using level sets.
    - Added 'examples/greycstoration.cpp' : New algorithm for image denoising, inpainting and resizing.
      (see http://www.greyc.ensicaen.fr/~dtschump/greycstoration)
    - Added 'examples/wavelet_atrous.cpp' (by R. Peteri) : Wavelet decomposition of a image.
    - Added a Fourier-based filtering demo in 'CImg_test.cpp', allowing interactive frequency filter creation.
    - Added an Image to ASCII converter, based on simple correlation measure. File : 'examples/image2ascii.cpp'.

 * Abandonned features :
    - Removed bump mapped version of the CImg<T>::draw_triangle() function.
    - Removed 'examples/inpainter.cpp' which is a little bit buggy (problem with multiscale).
    - Removed 'CImg<T>::new_display()' and 'CImgl<T>::new_display', which are confusing and useless. Use
      'new CImgDisplay(img)' and 'new CImgDisplay(list)' instead.    
    - Removed 'CImg<T>::get_stats()' and 'CImgl<T>::get_stats', which are useless. Use 'CImgStats(img)'
      and 'CImgStats(list)'.
    
*-----------------------------
*-----------------------------
* Changes from 1.0.6 to 1.0.7
*-----------------------------
*-----------------------------

 - New License : CImg is now distributed under the CeCiLL License, a free software GPL-like, more adapted
   to French laws. Don't be disturbed by this new License, CImg is still an open source free software !
 - Encapsulation of all CImg classes and functions in the 'cimg_library::' namespace. It avoids eventual
   class names collisions with other libraries. For compatility with your old code, you should
   insert 'using namespace cimg_library;', just after the '#include "CImg.h"' line, in your source code.
 - Removed global typedefs for uchar,uint,ushort,ulong. If you used them before, you'll have to redefine them :
   typedef unsigned char uchar;
   typedef unsigned short ushort;
   typedef unsigned int uint;
   typedef unsigned long ulong;
 - Corrected window resize bug on X11 displays.
 - Added PANDORE-4 file format support, with functions 'CImg::load_pandore()' and 'CImg::save_pandore()' (file extension : .pan)
   (PANDORE is a C++ toolkit for image processing, see http://www.greyc.ensicaen.fr/~regis/Pandore (in French))
 - Added macros CImg_3x3_ref(), CImg_5x5_ref(), .. allowing to use special loops cimg_map3x3,.. with references to C arrays and images.
 - Removed 'normalize' parameter in 'CImg::save()'. Saving normalized images can be still performed
   with 'img.normalize(0,255).save("normalized_image.jpg");'. This clarifies the code and doesn't add so much work at all.
 - Renamed 'CImg::get_sprite()' and 'CImg::sprite()' to 'CImg::get_crop()' and 'CImg::crop()'.
 - Changed 'draw_triangle' function with two textures, so that it corresponds to displacement mapping
   (aka 'bump mapping'), instead of two textures drawn with transparencies
   (which can be still made by two successive calls to single-textured 'draw_triangle' functions,
   with correct opacities).
 - Negative opacity parameter in drawing functions is now supported. It allows to ADD shapes colors to the current 
   image pixels (see the new 'ShadeBobs demo in the CImg_test.cpp file to see the concept).
 - Added functions 'CImg::draw_axeX', 'CImg::draw_axeY' and 'CImg::draw_axeXY', allowing to trace labelled axes on images.
 - Slightly changes in CImgDisplay : field 'attributes' has been removed, and replaced by more
   comprehensive field names : events, normalize, fullscreen. Resizing capabilities is now removed
   since all windows can be resized by default.
 - 'CImg<>::load_convert()' and 'CImg<>::save_convert()' do not popup a console window anymore on Windows-based OS,
   when creating code with a WinMain() entry.
 - RGB<->BGR Color inversion problem on some old Unix displays has been corrected.
 - Makefile for compilation on Solaris has been updated.
 - Package structure has been slightly modified for more clarity. Renamed also the CVS module to 'CImg' instead of 'CImg_'
 - Added different compilers projects to ease the compilation of the CImg examples, including
   Visual C++ 6.0, Visual.NET2003, Borland Bcc 5.6, Digital Mars Compiler, Dev-Cpp, Intel ICL.
 - Removed the use of TrackMouseEvent mechanism on Windows, removing compilation bugs with VC++6.0 when trying to create an MDI application.
 - Improved keycode detection under X11. Keycodes should now work for any X11-based system.
 - Support for FreeBSD added (thanks to Thierry Thomas).
 - Corrected bug in matrix multiplication.
 - Corrected bugs in CImg<T>::erode() and CImg<T>::dilate() functions (name inversion).
 - Corrected bug in 'CImg<T>::load_convert()' and 'CImg<T>::save_convert()' when trying to load/save images with pathnames containing spaces.
 - Recoded 'inrcast.cpp', and suppressed 'inrcrop.cpp' in the 'examples/' directory (functionnalities of 'inrcrop' are now included in 'inrcast').
 - And some corrections of minor bugs to improve library stability...
 - Improved error messages to ease program debug.
 - Documentation of the API is much more complete and detailled (still in progress...)

*------------------------------
*------------------------------
* Changes from 1.0.5 to 1.0.6 :
*------------------------------
*------------------------------

 - Drawing functions improved and optimized : Added transparency level to all drawing functions.
 - Added function 'draw_arrow()'
 - Added missing boolean operators.
 - Added CImgDisplay resize event, allowing to create flexible resizing windows.
 - Added 'CImg::draw_gaussian()' functions allowing to draw 1d,2d or 3d gaussians on images.
 - Added 'Oriented convolutions' demos in CImg_test.cpp
 - Recoded pde_TschumperleDeriche2D and 3D.
 - Bugs corrected in arithmetics operators.
 - Optimized image display.
 - Recoded 'CImg::feature_selection()'.
 - Recoded 'CImg::get_rotate()'
 - Renamed 'draw_plot()' to 'draw_graph()', and added cubic drawing style.
 - Renamed 'wait_sync()' to 'wait()'.
 - Renamed 'get_correl' to 'get_correlate' (idem for 'convolve')
 - Removed 'get_correl3x3,5x5,...'. Optimization is now a part of the 'get_correlate' function. (idem for 'convolve').
 - Removed 'get_rotate90,180,270'. Optimization is now a part of the 'get_rotate' function.
 - Compilation supported by gcc.3.4.1 (released july 2004).
