What's New for FreeImage * : fixed - : removed ! : changed + : added September 5th, 2005 - 3.8.0 ! FreeImage now uses libTIFF 3.7.3 ! FreeImage now uses ZLib 1.2.3 + [Herve Drolon] added support for 48-bit images to FreeImage_ConvertTo24Bits + [Herve Drolon] added FreeImage_ConvertToGreyscale + [Herve Drolon] added support for 16-bit greyscale images to FreeImage_ConvertTo8Bits + [Petr Pytelka] added UNICODE functions (see below) added FreeImage_LoadU added FreeImage_SaveU added FreeImage_GetFIFFromFilenameU added FreeImage_GetFileTypeU + [Herve Drolon] FreeImage_Copy now works with any bitmap type + [Herve Drolon] added support for 1-bit images to FreeImage_Paste * [Ryan Rubley] fixed PluginGIF failing to link on some broken gcc versions * [Karl-Heinz Bussian] fixed a bug in LookupX11Color/LookupSVGColor with handling of grey color names * [Herve Drolon] FreeImage_Dither now uses FreeImage_ConvertToGreyscale and handles 4/8-bit palletized images * [Herve Drolon] FreeImage_Threshold now uses FreeImage_ConvertToGreyscale and handles 4/8-bit palletized images * [Craig Hockenberry] fixed PluginGIF::Save swapping the byte order for the height on big endian machines (e.g. PPC on Mac OS X.) * [Herve Drolon] fixed a bug in JPEG plugin when reading Exif maker notes from images produced by Nikon Editor * [Herve Drolon] fixed a bug in BMP plugin when reading some malformed RLE8 bmp * [Herve Drolon] fixed a bug in RAS plugin when loading 8-bit palettized images with less than 256 colors * [Herve Drolon] fixed a bug in FreeImage_Rescale with 16-,48-,64-bit images * [Herve Drolon] fixed a bug in the ICC profiles API when loading profile-less CMYK TIFF * [Herve Drolon] 4-bit PNG are now loaded as 4-bit and no longer converted to 8-bit * [Greg Ng] fixed a bug in FreeImage_ConvertToRGBF (FIT_BITMAP -> FIT_RGBF conversion) May 7, 2005 - 3.7.0 ! FreeImage now uses libTIFF 3.7.2 ! [Ryan Rubley] improved FreeImage_OpenMultiBitmap + [Detlev Vendt] added FreeImage_ZLibGUnzip + [Herve Drolon] added new image data types FIT_RGB16, FIT_RGBA16, FIT_RGBF, FIT_RGBAF + [Herve Drolon] FreeImage_FlipHorizontal & FreeImage_FlipVertical now work with any bitmap type + [Herve Drolon] added conversions to float and double in FreeImage_ConvertToType + [Herve Drolon] added FreeImage_ConvertToRGBF + [Herve Drolon] added support for 16-, 48- and 96-bit images to FreeImage_Rescale + [Ryan Rubley] added FreeImage_ColorQuantizeEx + [Ryan Rubley] added FIMD_ANIMATION and FIDT_PALETTE + [Ryan Rubley] added brand new PluginGIF with full animation multipage and metadata support + [Herve Drolon] added support for FIC_MINISWHITE 8-bit images to FreeImage_Rescale + [Herve Drolon] added HDR (High Dynamic Range) format (loader & writer) + [Herve Drolon] added support for 48-bit images in TIFF plugin + [Herve Drolon] added support for 48-bit images in PNG plugin + [Herve Drolon] added tone mapping operators (see below) + added FreeImage_ToneMapping + added FreeImage_TmoDrago03 + added FreeImage_TmoReinhard05 + [Petr Pytelka] added FreeImage_JPEGTransform * [Herve Drolon] allowed loading of corrupted JPEG with a premature end of file * [Herve Drolon] fixed a memory leak with loading of exif JPEG images * [Detlev Vendt] changed some 'pointer-to-int' casts to 'pointer-to-long' for 64bit machines * [Ryan Rubley] fixed a memory leak in the multipage API * [Ryan Rubley] updated VB6 wrapper generation for new functions * [Herve Drolon] fixed incorrect behavior when reading JPEG comments containing special characters * [Herve Drolon] fixed incorrect behavior when reading JPEG ICC profiles with a size greater than 64 KB * [Herve Drolon] fixed a bug in TIFF plugin when loading malformed multipage TIFF * [Herve Drolon] fixed PluginTIFF not being thread safe February 20, 2005 - 3.6.1 * [Ryan Rubley] fixed a memory leak in the metadata API * [luedi] improved the robustness of FIBITMAP allocations February 13, 2005 - 3.6.0 ! FreeImage now uses libMNG 1.0.9 ! [Herve Drolon] improved the speed of FreeImage_Rescale ! [Herve Drolon] improved FreeImage_RotateClassic (more compact code, a little faster) ! [Herve Drolon] improved the metadata API using tag accessors + [Detlev Vendt] added LZW support to PluginGIF:Save + [Herve Drolon] added VS.Net 2003 project files + [Herve Drolon] added VERSIONINFO resource to the DLL + [Herve Drolon] added support for CMYK JPEG on loading + [Petr Supina] added 16-bytes alignment to FIBITMAP palette and pixels starting address + [Petr Supina] added support for MMX/SSE2 code in LibJPEG (based on Mozilla/Firefox code) + [Herve Drolon] added TIFF_JPEG compression flag to the TIFF plugin + [Detlev Vendt] added FreeImage_ZLibGZip + [Detlev Vendt] added FreeImage_ZLibCRC32 * [Detlev Vendt] fixed PluginPNG not being thread safe * [Herve Drolon] fixed compiler warning C4018 occuring with VS.Net 2003 December 29, 2004 - 3.5.3 ! FreeImage now uses ZLib 1.2.2 ! FreeImage now uses libPNG 1.2.8 ! FreeImage now uses libTIFF 3.7.1 ! [Herve Drolon] improved FreeImage_RotateClassic ! [Detlev Vendt] improved FreeImage_Rescale (more compact code, preserving 8-bpp colors) + [Herve Drolon] added support for transparency saving in ICO plugin + [Herve Drolon] added support for 1-bit images to FreeImage_RotateClassic + [Herve Drolon] added FreeImage_SetDotsPerMeterX and FreeImage_SetDotsPerMeterY * [Nan Feng] fixed memory leak in FreeImage_DeleteTag (internal stuff) * [Nigel Stewart] added conditional #pragma with #ifdef _MSC_VER / #endif * [Herve Drolon] fixed the '65536 lines' limit on loading in PNM plugin November 27th, 2004 - 3.5.2 * [Herve Drolon] fixed a second bug in FreeImage_Clone function November 26th, 2004 - 3.5.1 + [Riley McNiff] added FreeImage_ConvertTo4Bits * [Herve Drolon] fixed a buffer overrun with some ILBM images * [Riley McNiff] fixed a potential problem when reading TIFF resolution info * [Dimitar Atanasov] fixed a bug in FreeImage_Clone function * [Dimitar Atanasov] fixed several bugs in TIFF plugin November 1st, 2004 - 3.5.0 ! FreeImage now uses libPNG 1.2.7 ! FreeImage now uses libTIFF 3.7.0 ! FreeImage now uses libMNG 1.0.8 ! [Herve Drolon] improved TIFF LZW compression using a predictor ! [Detlev Vendt] FreeImagesPlus: corrected references to FreeImage.h and FreeImage.lib + [Herve Drolon] added support for loading/saving of 8-bit transparent TIFF + [Riley McNiff] added support for 4-bit dib in FreeImage_Paste + [Herve Drolon] added support for memory IO streams (see below) + added FreeImage_OpenMemory + added FreeImage_CloseMemory + added FreeImage_LoadFromMemory + added FreeImage_SaveToMemory + added FreeImage_TellMemory + added FreeImage_SeekMemory + added FreeImage_AcquireMemory + added FreeImage_GetFileTypeFromMemory + [Petr Pytelka] added FreeImage_GetFIFMimeType to the plugins function list + [Herve Drolon] added ICC profile support to JPEG plugin + [Herve Drolon] added support for metadata (see below) + added FreeImage_SetMetadata + added FreeImage_GetMetadata + added FreeImage_GetMetadataCount + added FreeImage_TagToString + added FreeImage_FindFirstMetadata + added FreeImage_FindNextMetadata + added FreeImage_FindCloseMetadata * [Riley McNiff] fixed a bug with FreeImage_SetPixelIndex and 4-bit images * [Petr Pytelka] fixed returned value in FreeImage_CloseMultiBitmap * [Petr Pytelka] fixed index of new page in FreeImage_InsertPage * [Aaron Shumate] fixed a minor bug in PNG plugin * [Aaron Shumate] fixed a bug in IFF plugin (odd-length chunks) * [Rupert Hewitt] fixed FreeImage not compiling on National Instruments Cvi Ccompiler * [Herve Drolon] fixed a bug in IFF plugin (ILBM data) * [Fred Harju] added a Makefile for Solaris 9 * [Roddy Pratt] fixed FreeImage not linking under Borland C++ Builder * [Vadim Alexandrov] fixed a memory leak in the multipage API * [Herve Drolon] fixed a bug with DDS plugin behaviour on Big Endian OS * [Herve Drolon] fixed a bug with conversion of JPEG resolution info on saving July 8th, 2004 - 3.4.0 ! [Jim Keir] improved FreeImage_FlipVertical function ! [Herve Drolon] LZW compression is now enabled in FreeImage + [Karl-Heinz Bussian] added constants to FreeImage.h to get at compile time the library version + [Karl-Heinz Bussian] added color lookup functions for X11 and SVG + [Herve Drolon] added TIFF tags TIFF_CCITTFAX3, TIFF_CCITTFAX4 and TIFF_LZW + [Detlev Vendt] added support for CMYK TIFF files with alpha channel + [Detlev Vendt] added (re-introduction of) PluginGIF * [Herve Drolon] fixed a bug with loading of FAX TIFF images (introduced with LibTIFF 3.6.1) * [Herve Drolon] fixed a bug in Floyd-Steinberg dithering algorithm * [Herve Drolon] fixed a bug in Targa plugin save function * [Herve Drolon] fixed a bug in FreeImage_AdjustCurve function * [Ryan Rubley] fixed a bug with FreeImage_Rescale's filters accuracy * [Ryan Rubley] fixed a bug in NN quantizer * [Herve Drolon] fixed a bug with TIFF files containing additional Photoshop alpha channels * [James Rossfeld] fixed a memory leak with some PSD images * [Herve Drolon] fixed a bug with saving of 32-bit non transparent PNG images * [Alexandr Zamaraev] fixed FreeImage not compiling with mingw32 * [Herve Drolon] fixed FreeImage not compiling with VC.NET (pow function needs casts) May 2, 2004 - 3.3.0 ! [Ryan Rubley] FreeImage has been ported to MacOSX and should also work on other big endian processors + [Ryan Rubley] rewrote XPM plugin (better load support) and added save support + [Ryan Rubley] added ICO_MAKEALPHA flag to ICO plugin + [Ryan Rubley] Set/GetPixelColor now works with 16-bit pixels (555 or 565) + [Herve Drolon] PNG plugin now supports loading and saving of unsigned 16-bit greyscale images * [Herve Drolon] fixed a bug with loading of 8-bit and 16-bit PNG with a 8-bit alpha channel * [Herve Drolon] fixed a bug in NN quantizer algorithm with handling of 4-byte boundary alignment. * [Herve Drolon] fixed a bug in PluginIFF Validate function * [Herve Drolon] fixed a minor design issue in FreeImage_GetFIFFromFormat * [Brad Schick] fixed some compiler warnings with VC++ 7.1 * [Herve Drolon] fixed a bug with saving of 8-bit palettized images to 24-bit JPEG (channel inversion) March 16, 2004 - 3.2.1 ! [Volker Gärtner] improved the DDS plugin ! [Herve Drolon] FreeImage_Rescale now works on 8-, 24- and 32-bit images ! [Herve Drolon] FreeImage_Copy now works on 1-, 4-, 8-, 16-, 24- and 32-bit images * [Floris van den Berg] fixed a bug in the MultiPage cache mechanism * [Herve Drolon] fixed a bug with loading/saving of 8-bit transparent tga images * [Herve Drolon] fixed a bug with loading of 1-bit TIFF (introduced with LibTIFF 3.6.1) February 18, 2004 - 3.2.0 ! FreeImage now uses libTIFF 3.6.1 + [Herve Drolon] added FreeImage_HasBackgroundColor + [Herve Drolon] added FreeImage_GetBackgroundColor + [Herve Drolon] added FreeImage_SetBackgroundColor + [Herve Drolon] added FreeImage_Composite + [Herve Drolon] added ICC profile support to PNG plugin + [Herve Drolon] added background color support to PNG plugin + [Volker Gärtner] added support for DDS format (loader) * [Steve Johnson] improved FreeImage_OpenMultiBitmap/FreeImage_CloseMultiBitmap * [Steve Johnson] fixed a bug in FreeImage_InsertPage * [Herve Drolon] fixed a bug with JPEG compressed TIFF (red/blue swapping) * [Herve Drolon] fixed a bug in PluginTarga where 8-bit images were saved incorrectly January 26, 2004 - 3.1.0 ! FreeImage now uses ZLib 1.2.1 + [Herve Drolon] added support for integer, real and complex image types (see below) + added FREE_IMAGE_TYPE enum + added FreeImage_AllocateT + added FreeImage_GetImageType + added FreeImage_FIFSupportsExportType + added FreeImage_ConvertToStandardType + added FreeImage_ConvertToType + added load/save support of all image types to TIFF plugin + [Peter Lemmens] added a Validate function to TARGA plugin + [Herve Drolon] added FreeImage_GetPixelIndex / FreeImage_SetPixelIndex + [Herve Drolon] added FreeImage_GetPixelColor / FreeImage_SetPixelColor + [Herve Drolon] added FreeImage_GetComplexChannel / FreeImage_SetComplexChannel * [Serge Ivanchenko] TIFF_DEFLATE compression is now enabled in TIFF plugin * [Herve Drolon] fixed a bug in NeuQuant color reduction algorithm November 16, 2003 - 3.0.4 * [Tobias Persson] fixed FreeImage_GetChannel not working with FICC_ALPHA channel * [Detlev Vendt] fixed a minor bug with PNG plugin and PNG_IGNOREGAMMA flag * [Detlev Vendt] fixed a memory leak in PNG plugin save routine * [Detlev Vendt] fixed JPEG validation problem with .jpe files * [Ryan Rubley] added Source/LibTIFF/tif_extension.c to LibTIFF (needed for MacOSX) * [Herve Drolon] improved error handling in TIFF plugin + [Karl-Heinz Bussian] added FreeImage_IsLittleEndian + [Karl-Heinz Bussian] added JPEG save support for 8-bit miniswhite bitmaps (transparent conversion to minisblack) + [Karl-Heinz Bussian] FreeImage_GetColorType now recognizes 8-bit FIC_MINISWHITE images ! [Herve Drolon] FreeImage_Rescale now supports rescaling of 32-bit images with alpha channel ! [Herve Drolon] FreeImage_Invert now supports inversion of 32-bit images with alpha channel ! [Herve Drolon] FreeImage_AdjustCurve now supports working with FICC_ALPHA channel November 2, 2003 - 3.0.3 * [Ryan Rubley] improved makefile for Linux * [Ryan Rubley] fixed FreeImage not compiling under MacOSX * [Detlev Vendt] fixed still present inconsistancy with 32bpp transparency handling * [Herve Drolon] fixed incorrect loading of 4-bit greyscale images in TIFF plugin October 27, 2003 - 3.0.2 ! FreeImage now uses libMNG 1.0.6 * [Herve Drolon] fixed a boolean test in PluginCUT returning always false * [Herve Drolon] fixed a warning in PluginIFF generated with g++ * [Linus Tan] fixed a bug in FreeImage_Copy * [Herve Drolon] fixed FreeImage not compiling under Linux (thanks to Michal) October 20, 2003 - 3.0.1 ! FreeImage now uses libTIFF 3.6.0 * [Detlev Vendt] fixed incorrect definition of the FREE_IMAGE_FORMAT enum * [Detlev Vendt] fixed a potential crash problem with Load / Save routines * [Herve Drolon] fixed incorrect loading of 16-bit greyscale images in TIFF plugin * [Dennis Lim] fixed a memory leak in Floyd & Steinberg dithering routine * [Herve Drolon] fixed a bug in BMP loader (incorrect loading of RLE4 bmp) * [Detlev Vendt] fixed some inconsistancy with 32bpp transparency handling + [David Boland] added a C# wrapper // Linux compatibility issues - [Michal Novotny] removed the round function in Utilities.h ! [Herve Drolon] replaced the round routine by the clamp routine in PluginPCD + [Herve Drolon] added _itoa version in Utilities.h * [Michal Novotny] fixed untyped consts not accepted by g++ in PluginBMP September 8, 2003 - 3.0.0 - [Herve Drolon] removed deprecated functions - [Herve Drolon] removed deprecated flags (TARGA_LOAD_RGB555, ICO_*, except ICO_DEFAULT) - [Herve Drolon] removed the FreeImage pointer table (internal stuff) + [Herve Drolon] added a C++ wrapper + [Herve Drolon] added the FreeImage Toolkit (see below) + added FreeImage_Rescale + added FreeImage_RotateClassic + added FreeImage_RotateEx + added FreeImage_FlipHorizontal + added FreeImage_FlipVertical + added FreeImage_Invert + added FreeImage_AdjustCurve + added FreeImage_AdjustGamma + added FreeImage_AdjustBrightness + added FreeImage_AdjustContrast + added FreeImage_GetHistogram + added FreeImage_GetChannel + added FreeImage_SetChannel + added FreeImage_Copy + added FreeImage_Paste + [Karl-Heinz Bussian] added XPM loader + [Karl-Heinz Bussian] added flags parameter to FreeImage_CloseMultiBitmap + [Karl-Heinz Bussian] added JPEG save support for 8-bit palettized bitmaps (transparent conversion to 24-bit) + [Herve Drolon] added interface to ZLib compression functions + [Herve Drolon] added ICO format to the multipage API (loader & writer) + [Herve Drolon] added a MIME type to all plugins * [Karl-Heinz Bussian] fixed incorrect conversion from 1-bit FIC_MINISWHITE bitmaps to 8-bit * [Herve Drolon] fixed a bug in FreeImage_CloseMultiBitmap * [Herve Drolon] fixed a potential memory leak in conversion functions (8-, 24-, 32-bit) * [Robert Walker] fixed incorrect conversion from 16-bit to 24-bit and 16-bit to 32-bit * [blurble] fixed TIFF validate signature problem (3DS files were recognized as TIFF) * [Kurt Jankowski-Tepe] fixed FreeImage not compiling on MinGW / LCC WIN32 * [Jani Peltonen] fixed bug in PluginTARGA where 32-bit bitmaps are not always correctly flipped * [Detlev Vendt] fixed a bug with TIFF (memory leak with ICC profiles) May 25, 2003 - 2.6.1 + [Detlev Vendt] added FIC_CMYK to FREE_IMAGE_COLOR_TYPE + [Detlev Vendt] added ICC profile support to the library (see below) + added FreeImage_GetICCProfile + added FreeImage_CreateICCProfile + added FreeImage_DestroyICCProfile + added FIICCPROFILE & FIICCPROFILE flags + added plugin function FreeImage_FIFSupportsICCProfiles + [Detlev Vendt] added ICC profile support for TIFF + [Herve Drolon] added XBM (X11 Bitmap Format) support : loading * [Herve Drolon] fixed incorrect IFF file detection (thanks Floris) * [Herve Drolon] fixed incorrect conversion from 1/4-bit greyscale bitmaps to 8-bit * [Herve Drolon] fixed a bug in TIFF writer when saving 1,4,8 bit dib (introduced in 2.6.0, sorry) * [Herve Drolon] fixed a palette problem in TIFF loader when loading 1-bit b & w images * [Herve Drolon] improved FreeImage_Dither to handle any bitdepth May 5th, 2003 - 2.6.0 ! FreeImage now uses libPNG 1.2.5 ! FreeImage now uses libMNG 1.0.5 ! [Markus Loibl] ActiveX wrapper is now distributed in a separate release (since 2.5.5) ! [Herve Drolon] the function FreeImage_Free is now deprecated : use FreeImage_Unload instead ! [Herve Drolon] updated the generic samples and removed deprecated functions + [Detlev Vendt] added CMYK support to TIFF save function + [Detlev Vendt] added TIFF_SAVE_CMYK flag constant + [Detlev Vendt] added 32-bit support (with transparency handling) to TIFF plugin + [Herve Drolon] added FreeImage_Threshold + [Herve Drolon] added FreeImage_Dither + [Herve Drolon] added FREE_IMAGE_DITHER parameter to FreeImage_Dither * [Herve Drolon] improved error handling in PluginMNG * [Herve Drolon] improved TIFF flags handling in TIFF save function * [Herve Drolon] fixed a potential crash-problem in FreeImage_OutputMessage (in case of a null message) * [Detlev Vendt] fixed a bug with the deprecated FreeImage_GetBitsRowCol (trailling backslash behind the DEPRECATE macro) July 24th, 2002 - 2.5.5 ! FreeImage now uses libPNG 1.2.4 ! FreeImage now uses libMNG 1.0.4 + [Markus Loibl] added ActiveX wrapper June 22th, 2002 - 2.5.4 * [Timothy Roughton] fixed FreeImage not compiling on LCC WIN32 * [Markus Loibl] fixed PluginTIFF sometimes saving with wrong X/Y resolution * fixed crashbug when loading some RLE4 BMPs ! FreeImage now uses LibPNG 1.2.3 ! [Markus Loibl] improved startup plugin locate handling code ! [Gerhard Gruber] made some changes so that FreeImage compiles on VC5 + [Markus Loibl] added flags TIFF_PACKBITS, TIFF_DEFLATE, TIFF_ADOBE_DEFLATE and TIFF_NONE May 21th, 2002 - 2.5.3 * fixed wrong colors when loading 16-bit grayscale TIFF * fixed crash-problem with FreeImageQt * fixed PluginTIFF saving some bitmaps flipped vertically * [Laurent Rocher] fixed bug in FreeImage_GetLockedPageNumbers * [Laurent Rocher] fixed bug in FreeImage_UnlockPage ! FreeImage now uses libpng 1.2.2 + added TARGA save support + added BMP RLE8 save support March 30th, 2002 - 2.5.2 * fixed bug in PluginTARGA where 32-bit bitmaps are not always correctly flipped * fixed FreeImage_GetLockedPageNumber being mentioned in FreeImage.h * fixed crash bug when handling read-only multipage bitmaps - removed internal function FreeImage_GetExtraDataPointer ! FreeImage now uses zlib 1.1.4 + added function FreeImage_GetLockedPageNumbers March 2nd 2002 - 2.5.1 * fixed pluginTIFF not being able to save 32-bit bitmaps * fixed not being able to save PNM bitmaps through the LoadXXX wrappers * fixed a webcam generated BMP image being loaded with wrong colors ! FI_ReadProc, FI_WriteProc, etc. do now carry the DLL_CALLCONV flag ! the function FreeImage_GetBitsRowCol is now deprecated ! FreeImage_SetTransparencyTable now taken an integer as count parameter ! FreeImage_IsTransparent now always returns true for 32-bit bitmaps ! PluginPNG::Save now ignores the result of FreeImage_IsTransparent ! PluginTIFF now converts all 32-bit bitmaps to 24-bit, until our patch to fully support alpha in TIFF is applied in libtiff + added full multi-paging support + added octal and hexadecimal number support to FreeImage_OutputMessage January 3rd 2002 - 2.5.0 * fixed bug in FreeImage_SaveJPEG * fixed bug in FreeImage_LoadMNG * fixed bug in FreeImage_LoadPNG * fixed small Visual C++ 5.0 compiler issue in PluginMNG.cpp * fixed FreeImage crashing on JPEG 6.0 encoded TIFFs ! FreeImage now uses libTIFF 3.5.7 ! FreeImage now uses libPNG 1.2.1 ! all the FreeImage_LoadXXX and FreeImage_SaveXXX functions are now deprecated + added Dr. Halo (*.cut) support + added printf-like format string support to SetOutputMessage + added basic multi-paging support: open, close, counting and grabbing + added deprecation manager + added FreeImage_Clone function October 3rd 2001 - 2.4.2 * fixed missing BI_BITFIELDS support for 32-bit BMPs * fixed bug in FreeImage_ConvertLine16_555_To16_565 and vice versa * fixed bug in FreeImage_ConvertToRawBits * fixed PluginTIFF behaving incorrectly on PHOTOMETRIC_MASK images * fixed 16 bit TIFFs not loading correctly * fixed incorrect handling of CCITTFAX3 and CCITTFAX4 TIFFs * fixed JPEG encoded TIFFs not being supported ! [Yours Detlev] patched libTIFF to handle EXTRASAMPLE_UNSPECIFIED ! [Juergen Riecker] improved speed of PCX loading a lot ! rewrote parts of FreeImage to improve support for c ! the internal RGB555 and RGB565 macros now read BGR instead of RGB ! FreeImage now uses libMNG 1.0.3 ! FreeImage now uses libPNG 1.2.0 ! FreeImage_Save now opens files with the "w+b" flag ! renamed internal macro CalculateUsedColors to CalculateUsedPaletteEntries ! enabling/disabling plugins no longer has effect on FIFSupportsReading ! enabling/disabling plugins no longer has effect on FIFSupportsWriting + added flag PNG_IGNOREGAMMA + added function FreeImage_FIFSupportsExportBPP July 30th 2001 - 2.4.1 * [Jan Nauta] fixed some plugin ids not being passed to plugins * [Jan Nauta] fixed some functions being natively called instead of indirect * [Jan Nauta] fixed BMPs with signature BA not being regognised * [Remo Eichenberger] fixed memory leak in the plugin system * fixed seek bug in PluginIFF's Validate * fixed transparency issue in PluginPNG * fixed uncaught exceptions in WUQuantizer and NNQuantizer * fixed some problems with PluginTARGA * fixed some problems with PluginICO * fixed some problems with PluginBMP ! improved FreeImageQt's load function a little ! tell/seek control for validation is now handled inside the plugin framework July 22th 2001 - 2.4.0 * (Yours Detlev) fixed memory leak in FreeImage_GetFIFFromFilename * (Yours Detlev) fixed memory leak in the ICO plugin * (Yours Detlev) fixed memory leak in the PNG plugin * fixed potential NULL-pointer access bug in Plugin::AddNode * fixed problems with linking the static lib - removed LBM plugin. Its functionality is placed in the IFF plugin now - removed FreeImage_GetFIFByIndex ! FreeImage now uses LibMNG 1.0.2 ! FreeImage_SetTransparent now only enables alpha when the bitmap is 8 or 32 bit ! FreeImage_SetTransparencyTable now only enables alpha when the bitmap is 8 bit ! FreeImage_LoadLBM now uses Mark Sibly's IFF plugin ! FreeImage_SaveBMP now converts to 24-bit when bpp is 32 and transparency is off ! FreeImage_SaveJPEG now converts to 24-bit when bpp is 32 and transparency is off ! FreeImage_SavePNM now converts to 24-bit when bpp is 32 and transparency is off ! FreeImage_SaveTIFF now converts to 24-bit when bpp is 32 and transparency is off + [Mark Sibly] added IFF (ILBM) support + added basic support for Photoshop files + added mime type support (FreeImage_GetFIFFromMime) + added functions FreeImage_SetPluginEnabled and FreeImage_IsPluginEnabled Disabling plugins modifies the behaviour of the following functions: * FreeImage_LoadFromHandle * FreeImage_SaveToHandle * FreeImage_FIFSupportsReading * FreeImage_FIFSupportsWriting * FreeImage_GetFIFFromFormat * FreeImage_GetFIFFromFilename * FreeImage_GetFIFFromMime * FreeImage_Validate June 30th 2001 - 2.3.2 * fixed missing "targa" extension in targa extension list * fixed small memory leak in PluginList::AddNode * fixed 32 bit PNG saving suddenly disappeared from the distro? * fixed 'black line' bug in LoadTARGA - removed project FreeImageM2 - removed FreeImage_Combine ! FreeImage_RegisterLocalPlugin now receives a FI_InitProc as first parameter ! FreeImage_GetFIFFromFilename now also takes the format id into account ! cleanup up the code a little for PluginPCD and PluginPCX + added static lib project June 11th 2001 - 2.3.1 * [Machiel ten Brinke] fixed the loading of some 'ancient' TARGAs * [Rui Lopes] fixed some bugs in the external plugin registration * fixed the plugin system crashing when the init function isn't called - removed project FreeImagePy - removed 32 to 24 bit conversion while saving PNG in FreeImageQt ! the scanline convert functions are now accessable in plugins ! FreeImage now uses an STL map to store the plugin list ! PluginSDK.h is now integrated into FreeImage.h ! FreeImage_Register now receives the boolean parameter 'load_local_plugins_only' ! FreeImage now uses LibPNG 1.0.12 + [Rui Lopes] added plugin for GIF reading/writing support + added function FreeImage_SetTransparencyCount + added support for 32 bit PNG saving + added FreeImage_RegisterLocalPlugin to allow plugins inside apps + added FreeImage_RegisterExternalPlugin to manually load DLLs + added plugin for JBIG reading/writing support May 4th 2001 - 2.3.0 * [Martin Weber] fixed some small bugs in the TARGA and BMP plugins * [Martin Weber] fixed tiny bug in new 16 bit conversions * [Martin Weber] fixed load flag inconsistency in the TARGA plugin * [Martin Weber] fixed plugin id / load reference inconsistency for PNM * [Jan Nauta] fixed bug in conversion 16 -> 16 * [Herve Drolon] fixed small bug in 4-bit PCX loader - removed code that loads BMPs renamed to ICO in PluginICO ! the flag TARGA_LOAD_RGB555 is now obsolete ! the plugin list is now sorted internally ! ConvertTo32Bits now stores the transparency table as alpha mask ! FreeImage now uses LibMNG 1.0,1 ! FreeImage now uses LibPNG 1.0.11 + added external plugin support via DLLs + added function FreeImage_GetFIFByIndex + added internal function CalculateScanLine + added transparency support for high-color PNGs + added transparency support for high-color TIFFs + added functions FreeImage_SetTransparent and FreeImage_IsTransparent + added constant FIC_RGBALPHA to FREE_IMAGE_COLOR_TYPE April 5th 2001 - 2.2.0 * [Remo Eichenberger] fixed small bug concerning DLLMain and static LIB generation * fixed 1-bit bitmaps not properly loading in FreeImageQt * fixed bug in conversion 16->16 * FreeImage now uses LibPNG 1.0.10 ! [Martin Weber] improved loading of BMP files ! [Martin Weber] improved loading of TARGA files ! [Dave Larson] improved visual appearance after 16 conversions ! FreeImageQt now converts 32-bit bitmaps to 24-bit when saving PNGs and JPEGs + added functions FreeImage_Initialise and FreeImage_DeInitialise + added internal plugins + re-added combine/alphablend functions March 8th 2001 - 2.1.0 * [Martin Hemming] fixed bug in 16-bit TARGA loading code * fixed PNG's with alpha masks not loading correctly ! FreeImage is now dual-licensed: the FI-License and the GPL license ! FreeImage now uses LibPNG 1.0.9 ! FreeImage now uses LibTIFF 3.5.6 Beta ! FreeImage now uses LiBMNG 1.0.0 ! changed the ordering of the FREE_IMAGE_FORMAT table ! improved linux support ! improved test script + added transparency table support to SavePNG + added BI_BITFIELDS support to LoadBMP and SaveBMP + added reading support for OS/2 2.x BMPs + added support for MNG and JNG reading using LibMNG + added support for Deluxe Paint reading + added 'hot swap' support to the Core DLL + added 'hot swap' support to FreeImage Qt + added functions GetFIFFromFormat and GetFIFFromFilename + added functions FIFSupportsReading and FIFSupportsWriting + added function GetFIFRegExpr January 14th 2001 - 2.0.0 * [Herve Drolon] fixed a bug in the conversion 4->8 * [Herve Drolon] fixed a bug in metrics handling in SaveJPEG * [Herve Drolon] fixed a bug in the return value of the function SaveTIFF * fixed the presence of two WuQuantizer.cpp files in the distribution * fixed bug where a BMP renamed to ICO isn't loaded - removed FreeImage_ConvertToGreyScale. Use FreeImage_ConvertTo8Bits instead. - removed the boolean parameters from all conversion routines - removed page handling in LoadTIFF. A new range of functions will be added. ! The void pointers used in FreeImage are now typed ! LoadBMP now takes palettes in 24/32 bit images in respect ! All effects and MMX functions are now stored in a new library (FreeEffects) ! [Herve Drolon] fixed bug in FreeImage_GetColorType ! [Herve Drolon] improved PCX loader. It can now read 1, 4, 8 and 24-bit images ! [Manfred Tausch] improved FreeImage_Rotate ! [Luca Piergentili] fixed crash bug when saving some 1-bit TIFFs ! rewrote all bitdepth conversion routines making use of the new scanline converters ! rewrote bitdepth conversion in FreeImageQt (uses less memory) ! FreeImage is now compiled __stdcall + [Herve Drolon] added WBMP (Wireless Bitmap Format) support: loading and saving + [Herve Drolon] added 4, 16 and 32 bitdepth handling in GetColorType + [Herve Drolon] added handling of 8-bit greyscale bitmaps in SaveJPEG + [Herve Drolon] added NeuQuant color reduction algorithm to ColorQuantize + added DLL_CALLCONV (calling convention) flag + added bitmask support to all bitmaps + added a series of functions converting scanlines from one bitdepth to another + added functions ConvertFromRawBits and ConvertToRawBits + added project FreeImageM2: Magenta II MMT bindings for FreeImage + added basic foundation for linux support December 2th 2000 - 1.4.4 * fixed small bug related to TIFFSetDirectory in FreeImage_LoadTIFF * fixed FreeImage_Rotate sometimes clipping too much pixels * fixed other small bug in FreeImage_Rotate * fixed FreeImage_Clone not taking the FREEIMAGEHEADER in account * fixed bug in FreeImageQt where 1-bit images are not correctly allocated * fixed FreeImage_Crop not copying the palette * fixed message function pointer crash bug * fixed bug where the palette wasn't copied when saving in FreeImageQt * fixed FreeImage_Clone not copying the transparency table - removed FreeImage_WritePaletteEntry ! [Adam Gates] rewrote parts of FreeImage so that c compilers can handle it better ! FreeImageQt doesn't statically link with the FreeImage lib anymore ! FreeImageQt now uses atexit() to automatically unregister ! rewrote parts of FreeImage_LoadBMP to increase speed + [Markus Loibl] added metrics handling code to LoadBMP, LoadJPEG, LoadTIFF and LoadPCX + added metrics handling code to FreeImageQt + added functions FIQT_IsLoaded, FIQT_GetVersion and FIQT_GetCopyrightMessage + added conversion 1 -> 16 + added FreeImage_SaveJPEG and JPEG quality settings + added FreeImage_GetBitsRowCol + added function FIQT_SetOutputMessage to FreeImageQt + added FreeImage_GetFileTypeFromExtension and FIQT_GetFileTypeFromFormat + added project FreeImagePy: python bindings for FreeImage November 7th 2000 - 1.4.3 * fixed FreeImage_SavePNG crash bug * fixed slighly corrupt size filter in FreeImage_Combine * fixed FreeImage_SaveTIFF not saving 4-bit images * [Herve Drolon] fixed bug in FreeImage_LoadTIFF * [Herve Drolon] fixed bug in FreeImage_GetColorType - removed fclose from FreeImage_SavePNM (who put it there?) ! rewrote FreeImage_Rotate ! FreeImageQt now automatically detects which formats are supported by Qt and which not ! FreeImage_Allocate now returns a void pointer ! FreeImage_Unload is now called FreeImage_Free + added 16-bit 5-5-5 support to FreeImage_LoadBMP + added RLE_DELTA support to FreeImage_LoadBMP + added directory support to FreeImage_LoadTIFF + added functions dealing with transparency + added transparency support to 8-bit PNG's in Qt + added FREE_IMAGE_QUANTIZE parameter to FreeImage_ColorQuantize + added custom FREEIMAGEHEADER header prepended to internal bitmaps + added new documentation October 18th 2000 - 1.4.2 * fixed FreeImage_SaveBMP storing an incorrect bfSize value in the BITMAPFILEHEADER * fixed bug where JPEG and PNG wouldn't load in FreeImageQt * fixed FreeImage_Mirror mirroring one pixel less than needed ! FreeImage_MaskedCombine24 is now called FreeImage_MaskedCombine24Ex ! FreeImage_MaskedCombine32 is now called FreeImage_MaskedCombine32Ex + added 16-bit bitmap support to FreeImage_Mirror + added 16-bit bitmap support to FreeImage_ConvertTo8Bits + added simple version of FreeImage_MaskedCombine24 + added simple version of FreeImage_MaskedCombine32 October 17th 2000 - 1.4.1 * [Herve Drolon] fixed bug in FreeImage_ConvertTo8Bits * fixed bug in conversion with 16 -> 24 and 16 -> 32 - removed static library support - removed all unnecessary files from LibTIFF, LibPNG, LibJPEG and ZLib - removed all absolute seeks from the library ! FreeImageQt now makes use of the DLL distro ! rebuilt the entire directory structure ! improved handling of BMP ! renamed FreeImage_MaskedCombine to FreeImage_MaskedCombine32 + [Alexander Dymerets] added 24-bit masked alpha blending with a seperate alpha mask + added FreeImage_Rotate (known bug in degrees 76 to 106) + added 4-bit bitmap support to FreeImage_ConvertTo16Bits + added 8-bit bitmap support to FreeImage_ConvertTo16Bits + added 32-bit bitmap support to FreeImage_ConvertTo16Bits + added 32-bit bitmap support to FreeImage_Mirror + added 16-bit 5-5-5 support to FreeImage_ConvertTo24Bits + added 16-bit 5-5-5 support to FreeImage_ConvertTo32Bits October 2th 2000 - 1.4.0 * [Jani Kajala] fixed bug in conversion with 4 -> 24 and 8 -> 32 * [Jani Kajala] fixed bug in FreeImage_Flip * [Jani Kajala] fixed minor bug in FreeImage_LoadBMP - [Herve Drolon] removed PBMFlags, PGMFlags and PPMFlags - [Herve Drolon] removed FI_LoadGeneric - removed FreeImage_Win32.h ! [Herve Drolon] changed FI_GetFileType ! [Herve Drolon] replaced FI_LoadPBM, FI_LoadPGM and FI_LoadPPM with FI_LoadPNM ! [Herve Drolon] improved FreeImage_LoadPNG ! FreeImage_WritePaletteEntry is now exported + [Herve Drolon] added FreeImage_SavePNG + [Herve Drolon] added FreeImage_SavePNM and PNMFlags + [Herve Drolon] added XXXFlags parameter to save functions + [Herve Drolon] added FreeImage_LoadRAS and FIF_RAS + added FreeImage_GetFileTypeFromExt September 7th 2000 - 1.3.5 + added conversion 4 -> 8 to FI_ConvertTo8Bits + added simple version of FI_GetFileType + added project FreeImageQt; a port of the library to the TrollTech library August 31th 2000 - 1.3.4 * fixed 'ice effect' bug in new 24 bit PCX code * fixed some bugs with the conversion 16 -> 24 and 16 -> 32 ! FI_Blur now returns void ! A debug build of the library now produces FreeImaged.dll and FreeImaged.lib ! TARGA_LOAD_ARGB8888 is now called TARGA_LOAD_RGB888 ! Alpha channels are now automatically loaded unless TARGA_LOAD_RGB888 is specified ! cleaned up the code a lot + added 32-bit bitmap support to FreeImage_ConvertToGreyscale + added support for 32-bit bottom-left TARGA images + added internal functions FreeImage_WritePaletteEntry() and FreeImage_GetScanLine() + added FreeImage_Win32.h, containing Windows functions needed to create DIBs + added documentation through Doxygen July 30th 2000 - 1.3.3 * [Jani Kajala] fixed some bugs with the conversion 4 -> 24 and 8 -> 24 * [Jani Kajala] fixed some bugs with the conversion 4 -> 32 and 8 -> 32 * fixed bug in FI_LoadPNM's ASCII number loader ! [Herve Drolon] improved FI_LoadPNG ! [Herve Drolon] changed FI_ConvertToGreyScale (added changeable macro for conversion) ! improved FI_ConvertTo24Bits ! improved FI_ConvertTo32Bits ! freeImage now uses LibPNG 1.0.8 + [Herve Drolon] added FI_ColorQuantize, based on Wu's color quantizer + added the conversion 1 -> 24 + added the conversion 1 -> 32 + added FI_ConvertTo8Bits + added FI_Invert (very useful for image processing) + added FI_GetColorType and 'enum FREE_IMAGE_COLOR_TYPE' June 30th 2000 - 1.3.2 - removed color reduction functions from the project ! [Herve Drolon] Improved FI_LoadTIFF code ! renamed FI_ToGrayscale to FI_ConvertToGreyScale ! renamed FI_IncreaseColors to FI_ConvertTo24Bits ! LoadBMP now supports 32-bit bitmaps ! [Jani Kajala] Improved FI_LoadTARGA and FI_LoadPCX code + added FI_ConvertTo32Bits to convert a bitmap to 32-bit + added FI_MaskCombine to combine two 32-bit bitmaps using a alpha mask + added FI_AddAlphaMask to enrich a 32-bit bitmap with an alpha mask + added FI_SaveTIFF + added 16-bit bitmap (565) support to the ConvertToXXX functions. + added FI_ConvertTo16Bits (555 and 565) June 1th 2000 - 1.3.1 - removed Standard Template Library (STL) code * [Jani Kajala] fixed minor bug in FI_LoadTARGA * [Jani Kajala] fixed some minor bugs in FI_LoadPCX ! streamlined FI_LoadJPEG a little ! FreeImage now uses LibPNG 1.0.6 ! FreeImage now uses LibTIFF 3.5.5 ! FreeImage now uses malloc and free instead of new and delete + introduced compiler flags to disable certain features in the DLL + added experimental nearest color reduction (FI_ReduceColorsNearestColor) April 13th 2000 - 1.3.0 * fixed some 8 bit PCX files loading incorrectly * fixed tiny bug in internally used CalculateUsedColors function - removed FI_SaveXPM. Only BMP is supported now. - removed Windows dependencies for easier porting ! optimized FI_LoadKOALA a little ! optimized FI_Combine using MMX technology ! FI_Combine now receives an 'unsigned integer' as alpha blend parameter ! FI_InCreaseColors and FI_ReduceColors don't dispose the old bitmap anymore + added PNM support (PGM, PPM and PBM; both binary and ascii) + [Alexander Dymerets] added FI_EnableMMX and FI_DisableMMX + added various effect functions (FI_Blur, FI_Brighten and FI_Crop) March 1st 2000 - 1.2.1 * fixed some 24 bit PCX files loading incorrectly February 8th 2000 - 1.2.0 * fixed last bitmap data block in JPEG files being truncated * fixed 4/8 bit BMP's incorrectly loading when the palette is smaller than the bitcount predicts - removed FI_Load. There is no reliable way to identify all image formats - removed FI_SetJpegDecodeMode. Mode selection is now done using the 'DataEnum data' parameter of FI_LoadJPEG ! read_proc/write_proc/tell_proc in FreeImageIO now are same as fread/fwrite/ftell + added a 'DataEnum data' parameter to all FI_LoadXXX functions. + added 16 bit TARGA support + added RLE support for TARGA images + added FI_GetDIBSize to get the size of a DIB in bytes + added Kodak PhotoCD support (Base, Base/4 and Base/16 encoding) + added KOALA support + added FI_GetFileType. Note: there is no reliable way to identify TARGA, ICO and PCD. Therefore they have been excluded In KOALA files only the files converted by a C64 emulator can be identified. + added FI_Combine to combine two 24-bit bitmaps with (optional) alpha blending January 15th 2000 - 1.1.1 ! FI_Copy is now called FI_Clone + added FI_ToGrayscale to convert a color bitmap to grayscale + added 32 bit TARGA support + added FI_IncreaseColors to increase the bitmap bitdepth from 4/8 bit to 24 bit January 14th 2000 - 1.1.0 * FI_MIRROR: fixed nibbles not being mirrored in 4 bit images * FI_MIRROR: fixed bits not being mirrored in 1 bit images * fixed improper loading of 1, 4 and 8 bit OS/2 BMP's * fixed some inconsistensies in the calculation of lines and pitches * fixed incorrectly loading of Huffman and FAX encoded TIFFs * fixed LoadTGA accepting 16 bit TGA's and returning corrupt DIB's - removed LZW support for TIFFs ! FreeImage now uses LibTIFF 3.5.4 + added ICO support + added overridable file I/O support in the form of FreeImageIO and fi_handle + added FI_Load for generic image loading + added FI_ReduceColors for color reduction + added FI_Copy to copy a bitmap in memory January 5th 2000 - 1.0.0