What's new in CImg Library 1.4.8 Beta
Mar 15, 2011
- Optimizations/modifications :
- Added option to specify compression type when saving tiff files.
- Bug corrections :
- Corrected bounding box approximation with large fonts.
New in CImg Library 1.4.6 (Nov 18, 2010)
- New features :
- Optimizations/modifications :
- 2010/09/24 : CImg::save_tiff(), Added option to specify compression type when saving tiff files.
- Bug corrections :
- 2010/09/23 : CImg::draw_text(), Corrected bounding box approximation with large fonts.
New in CImg Library 1.4.4 Beta (Oct 11, 2010)
- Optimizations/modifications :
- 2010/09/24 : CImg::save_tiff(), Added option to specify compression type when saving tiff files.
- Bug corrections :
- 2010/09/23 : CImg::draw_text(), Corrected bounding box approximation with large fonts.
New in CImg Library 1.4.3 Beta (Sep 22, 2010)
- New features :
- 2010/09/01 : Added functions 'CImg::load_camera()' to get images from cameras (uses OpenCV, new macro 'cimg_use_opencv'
- must be defined, and openCV libraries must be linked).
- Optimizations/modifications :
- 2010/08/05 : Renamed function 'cimg::tac()' to 'cimg::toc()'.
- 2010/08/13 : Expressions in mathematical parser can now end with a ';' without being invalid.
- 2010/08/13 : Added command '-trisolve' in G'MIC in order to solve tridiagonal systems.
- 2010/08/25 : Removed hard values cut in 'CImg::resize()' and 'CImg::rotate()' when using
- bicubic or lanczos interpolations. You may have to check then that resulting values
- are not out of your desired value range with these interpolations.
- 2010/08/31 : Suppressed light buffer copy when possible, in 'CImg::draw_object3d()', speeding up
- the rendering a little bit for phong-shaded rendering with custom light source.
- 2010/08/31 : Various small improvements and bug corrections specific to the G'MIC interpreter.
- Bug corrections :
- 2010/08/10 : Small improvement in 'CImg::blur_bilateral()', suggested by Jakob Schluttig.
- 2010/08/13 : Small bug corrected in 'CImg::draw_object3d()', avoiding wrong memory access when drawing
- a 3d object with colors having less components than the rendering image spectrum.
- 2010/08/24 : Forced stdin/stdout streams to be in binary mode when loading/saving images (fix a bug on Windows).
New in CImg Library 1.4.2 Beta (Sep 10, 2010)
- New features :
- 2010/09/01 : Added functions 'CImg::load_camera()' to get images from cameras (uses OpenCV, new macro 'cimg_use_opencv'
- must be defined, and openCV libraries must be linked).
- Optimizations/modifications :
- 2010/08/05 : Renamed function 'cimg::tac()' to 'cimg::toc()'.
- 2010/08/13 : Expressions in mathematical parser can now end with a ';' without being invalid.
- 2010/08/13 : Added command '-trisolve' in G'MIC in order to solve tridiagonal systems.
- 2010/08/25 : Removed hard values cut in 'CImg::resize()' and 'CImg::rotate()' when using bicubic or lanczos interpolations. You may have to check then that resulting values are not out of your desired value range with these interpolations.
- 2010/08/31 : Suppressed light buffer copy when possible, in 'CImg::draw_object3d()', speeding up the rendering a little bit for phong-shaded rendering with custom light source.
- 2010/08/31 : Various small improvements and bug corrections specific to the G'MIC interpreter.
- Bug corrections :
- 2010/08/10 : Small improvement in 'CImg::blur_bilateral()', suggested by Jakob Schluttig.
- 2010/08/13 : Small bug corrected in 'CImg::draw_object3d()', avoiding wrong memory access when drawing a 3d object with colors having less components than the rendering image spectrum.
- 2010/08/24 : Forced stdin/stdout streams to be in binary mode when loading/saving images (fix a bug on Windows).
New in CImg Library 1.4.1 Beta (Sep 8, 2010)
- 2010/08/05 : Renamed function 'cimg::tac()' to 'cimg::toc()'.
- 2010/08/13 : Expressions in mathematical parser can now end with a ';' without being invalid.
- 2010/08/13 : Added command '-trisolve' in G'MIC in order to solve tridiagonal systems.
- 2010/08/25 : Removed hard values cut in 'CImg::resize()' and 'CImg::rotate()' when using
- bicubic or lanczos interpolations. You may have to check then that resulting values
- are not out of your desired value range with these interpolations.
- 2010/08/31 : Suppressed light buffer copy when possible, in 'CImg::draw_object3d()', speeding up
- the rendering a little bit for phong-shaded rendering with custom light source.
- 2010/08/31 : Various small improvements and bug corrections specific to the G'MIC interpreter.
New in CImg Library 1.4.0 Beta (Sep 3, 2010)
- New features :
- 2010/09/01 : Added functions 'CImg::load_camera()' to get images from cameras (uses OpenCV, new macro 'cimg_use_opencv'
- must be defined, and openCV libraries must be linked).
- Optimizations/modifications :
- 2010/08/05 : Renamed function 'cimg::tac()' to 'cimg::toc()'.
- 2010/08/13 : Expressions in mathematical parser can now end with a ';' without being invalid.
- 2010/08/13 : Added command '-trisolve' in G'MIC in order to solve tridiagonal systems.
- 2010/08/25 : Removed hard values cut in 'CImg::resize()' and 'CImg::rotate()' when using
- bicubic or lanczos interpolations. You may have to check then that resulting values
- are not out of your desired value range with these interpolations.
- 2010/08/31 : Suppressed light buffer copy when possible, in 'CImg::draw_object3d()', speeding up
- the rendering a little bit for phong-shaded rendering with custom light source.
- 2010/08/31 : Various small improvements and bug corrections specific to the G'MIC interpreter.
New in CImg Library 1.3.9 Beta (Jul 28, 2010)
- New features :
- 2010/07/23 : Added functions 'cimg::tic()' and 'cimg::tac()', useful to display elapsed times (Thanks to JÈrome Boulanger for his suggestion and his piece of code).
- Bug corrections :
- 2010/07/27 : Corrected bug in 'cimg::round()', so that '-round(x)==round(-x)' is verified.
- 2010/07/27 : Corrected bug in 'CImg::draw_text()' occuring when trying to draw text on images with more than 4 channels.
New in CImg Library 1.3.8 (Jul 20, 2010)
- Added valid expression 'value%' in internal math parser, to be equivalent to 'value/100'.
New in CImg Library 1.3.7 (Jul 7, 2010)
- Added functions 'CImg::object3dtoCImg3d()' and 'CImg::object3dtoCImg3d()'. They can transform a 3d object
- into a single column vector. It supports all 3d features of CImg, including textures and opacities. So, now,
- 3d objects can be saved as regular images, or even gathered into lists of 3d objects.
- Added function 'CImg::watershed()' able to compute the watershed transform from an image of labels and a priority map.
New in CImg Library 1.3.6 (Jul 2, 2010)
- Optimizations / Modifications :
- Improved the 'gmic' tool a lot (a kind of command line version of CImg, see
- http://gmic.sourceforge.net).
- Bug corrections :
- Corrected priority operator bug in math parser (operator-).
- Corrected drawing bug in 'CImg::draw_spline()' functions.
New in CImg Library 1.3.5 (Jun 16, 2010)
- Optimizations / Modifications :
- 2010/04/19 : 'CImg::sort()' can now sort 'along an axis', which means only the first line of the specified axis is sorted, and
- the other lines are permuted the same way. It may be used to avoid managing an image of permutations.
- 2010/04/19 : It is now possible to specify a z-buffer of any datatype when drawing 3d objects. The 'CImg::display_object3d()' function
- now uses double-valued z-buffers to get more precision when drawing 3d objects, if the specified input 3d vertices are double-valued.
- 2010/04/19 : 'CImg::display_object3d()' : better management of the zoom in/out when focale is not set to default value.
- Optimized memory ressources required by this function. Improved the way the pose matrix is handled.
- 2010/04/22 : The traits 'cimg::type' have now a 'id()' method which returns an unique integer that identifies the datatype.
- Bug corrections :
- 2010/05/19 : Replaced unsecure string functions by their secure versions, to avoid memory buffer overflow.
- 2010/05/14 : 'CImg::draw_line()' : Corrected clipping bug when passing very big integers.
- 2010/04/09 : 'CImg::{load,save}_graphicsmagick()' : Added explicit calls to the GraphicsMagick initialization/destroy function
- for better memory management.
- 2010/04/09 : 'CImg::load_jpeg()' : Better handling of jpeg library errors (patch submitted by Martin Petricek).
- 2010/04/23 : 'CImg::display_object3d()' : Corrected bug when light texture were switched on/off in multiple calls.
New in CImg Library 1.3.4 (Apr 8, 2010)
- New features :
- Added functions 'CImg::object3dtoCImg3d()' and 'CImg::object3dtoCImg3d()'. They can transform a 3d object
- into a single column vector. It supports all 3d features of CImg, including textures and opacities. So, now,
- 3d objects can be saved as regular images, or even gathered into lists of 3d objects.
- Added function 'CImg::watershed()' able to compute the watershed transform from an image of labels and a priority map.
- Optimizations / Modifications :
- 'CImg[List]::{save,load}()' can now save and load empty images in .cimg[z] format.
- CImg::load_bmp()' and 'CImg::{save,load}_jpeg()' have been modified to reduce memory usage.
- Added variants of 'CImg::cubic_at*()' that can cut the interpolated value between specified bounds.
- Modified the way colored sphere primitives are considered in 3d objects. Now, a sphere primitive takes two vertex
- indices defining the sphere diameter.
- Remove the support of the Carbon library for MacOSX. The code used were old and not fully functional. Use the
- X11 implementation of the CImgDisplay class instead on MacOSX (without the XShm extension, which is not fully supported yet).
- Modified the way the light texture is specified for phong-based 3d rendering. Now, the light must have as much channels as
- the spectrum of the image on which the object is drawn. Then, we can do now custom colored lights in phong-shaded 3d mode.
- Modified functions 'CImg::{load,save}_ffmpeg()' so it can compile with different API versions of the ffmpeg library.
New in CImg Library 1.3.3 (Apr 2, 2010)
- New features :
- Added arithmetic functions 'CImg::[get_]sign()' to compute the sign of image values.
- Added arithmetic functions 'CImg::[get_]sinc()' to compute the sinc() function of image values.
- Added functions 'sinc(),rol(),ror(),isval(),isint(),isnan(),isinf() and isbool()' inside the mathematical parser.
- Added function 'CImg::cubic_atXYZ()' to access 3D voxel with a bicubic interpolator.
- Added functions 'CImg::load_pfm()' and 'CImg::save_pfm()' to add native support of PFM files.
- Optimizations / Modifications :
- Updated G'MIC core and plug-in with various improvements.
- Slight optimizations and corrections of the internal math parser.
- Recoded most of the 'CImg::resize()' function, with faster interpolations,
- better bicubic, and new Lanczos5 interpolation.
- Update 'CImg::load_png()' to fit with libpng14 API.
- Modified 'CImg::get_projections2d()' to get the minimal value instead of 0 as the intensity of
- the bottom right area.
- Modified 'CImg::draw_text()' to get more flexibility in the font size. Fonts are interpolated
- when custom size is requested.
- Removed useless font data. 4 fonts with different sizes remains now in CImg. Other sizes
- are interpolated from these basis fonts. This reduces the header file size a lot.
- CImg exception classes know derives from std::exception, and the 'message()' method has been
- renamed to the more standard 'what()'.
- Exception messages have been improved in all CImg functions and methods.
- Bug corrections :
- Key repetition bug corrected in 'CImg::display_plot()'.
- Small bug corrected in arithmetic operators using math expression strings with references to current image.
- Improved robustness of preview window in 'gmic_gimp' plug-in for GIMP.
- Corrected bugs in 'CImg::draw_polygon()', corresponding to singular cases.
- And as always, a lot of various bugs corrections and improvements in library and example files.
New in CImg Library 1.3.1 (May 26, 2009)
- New features :
- Added configuration macro 'cimg_file_separator' that takes value "/" or ""
- depending on which OS is running. This macro is used in load/save functions
- for better portability.
- New example file 'examples/gaussian_fit.cpp' which demonstrates how to apply the
- Levenberg-Marquardt algorithm to fit a 3-parameter gaussian on a set of sample points.
- Added function 'CImg[{Display,List}]::empty()' that returns a reference to an empty object
- (can be used to pass empty images as default values of function parameters).
- Added variant of the function 'CImg::draw_triangle()' to draw riangle with linearly
- interpolated colors defined at each triangle vertex.
- Added a formula parser in CImg, so that many arithmetic operators can use it to
- evaluate expressions (given as a C-string).
- Added example file 'examples/plotter.cpp' that plots a mathematical function on an interactive window.
- Added functions 'CImg::index()' and 'CImg::map()' that can index an image with a multi-spectral
- palette, or map a multi-spectral palette on an image.
- Optimizations / Modifications :
- Added parameter 'bytes_per_pixel' to force the use of 8 or 16 bits modes in functions
- 'CImg::save_magick()', 'CImg::save_pnm()' and 'CImg::save_png()'. Thanks to Julien Morat
- for pointing this out to me.
- Added parameter 'backward' to 'CImg::displacement_field()', allowing to select between
- forward of backward estimation procedure.
- Parameters 'ru,rv' in 'CImg::draw_ellipses()' have been replaced by parameter 'angle'.
- Function 'CImg[List]::get_split()' is now able to split an image into bloc of given pixel size.
- Changed 'zbuffer' parameter type to 'CImg' in 'CImg::draw_*' functions.
- Remove 'GREYCstoration' specific code. The GREYCstoration algorithm is now a part of the G'MIC framework.
- Note that the two functions 'CImg::blur_anisotropic()' and 'CImg::blur_patch()' are still here to
- smooth an image anisotropically (are the core algorithm of the former GREYCstoration).
- Bug corrections :
- Corrected 'CImg::translate()' : function parameters were the opposite of the real translation done.
- Modifications on CImg.h to be more compatible with VC++6.
- Corrected 'CImg::get_histogram()'.
- Corrected 'CImg::load_ascii()'.
New in CImg Library 1.2.9 (Oct 15, 2008)
- Added new example file 'examples/captcha.cpp', which can be used to draw captcha images. This is a very short and simple code, so it can be interesting for a first approach of CImg.
- Added functions 'CImg::scale_2x()' and 'CImg::scale_3x()' allowing to upscale an image with a edge-directed algorithm (see 'http://scale2x.sourceforge.net/')
- Added function 'CImg::save_cpp()' allowing to save an image directly as a C/C++ source code.
- Added function 'CImg::draw_mandelbrot()' allowing to draw quadratic mandelbrot fractal set on images.
- Added a new demo effect 'Fish-Eye Magnification' in file 'examples/CImg_demo.cpp'.
- Added new fields in CImgDisplay for an easy test of keys pressing. Very useful for testing complicated combinations.
- Added functions to read/save gzipped files.
- Added compression option for .cimg files (requires the use of the 'zlib' library).
- Added color conversions for CMY and CMYK color bases.
- Big code cleaning and re-organization in file 'CImg.h', making the things more clear.
- Function 'CImg::load_ascii()' has been modified to allow comments before specifying image dimensions.
- Functions 'CImg[List]::print()' have been slightly modified to be more precise and clear. Also used in functions 'CImg[List]::display()'.
- Improved functionalities of the image processing tool 'inrcast.cpp'.
- Improved 'CImg[List]::display()' function allowing easy navigation and zooming in images.
- Add native use of ffmpeg libraries to load video sequences (Thanks to David Starkweather for his nice contribution !)
- Optimized function 'CImg::permute_axes' for common used cases (planar to interleaved RGB and RGBA).
- Added parameter 'step_frame' in functions that can load video sequences, i.e. CImg[List]::load_yuv(), CImg[List]::load_tiff(), CImg[List]::load_ffmpeg(), so that frames can be skipped when loading the video files.
- Removed parameter 'events_type' in CImgDisplay functions. By default, a display is always catching all user events. Having different choices made slight problems between different architectures (and was not really useful).
- Removed plugin 'plugins/toolbox3d.h'. Functions of the plug-ins are now natively integrated into the CImg.h file, as well as the LibBoard library support.
- Renamed functions 'CImg::*pix?d()' to 'CImg::*at?()'.
- Small bug in functions 'CImg[List]::contains()' were corrected.
- Bug correction in function 'CImg::[get_]stats()' : offset of min and max values were sometimes incorrect.
- Bug correction in CImgDisplay events for Windows-based OS. When mouse leaved a window, coordinates didn't reset to -1 sometimes.
- Small non-computational bug correction in 'CImg::symmetric_eigen()'.
- Removed g++ warning that occured when using 'libpng' ('warning: argument 'xxx' might be clobbered by 'longjmp' or 'vfork').
- Corrected small illumination bug with double sided 3D objects in CImg::draw_object3d().
- And a lot of other small improvements and bug corrections...