What's New for FreeImage * : fixed - : removed ! : changed + : added July 31st, 2018 - 3.18.0 ! FreeImage now uses ZLib 1.2.11 ! FreeImage now uses LibRaw 0.19 ! FreeImage now uses LibWebP 1.0.0 (GIT patch 2018-07-24) ! FreeImage now uses LibPNG 1.6.35 ! FreeImage now uses LibTIFF 4.0.9 (GIT patch 2018-07-02) ! FreeImage now uses OpenEXR 2.2.1 ! FreeImage now uses LibJPEG 9c + [Herve Drolon] added VS 2017 project files - [Herve Drolon] removed VS 2005 project files : this IDE is no longer supported because of its outdated C++ compiler - [Herve Drolon] removed VS 2008 project files : this IDE is no longer supported because of its outdated C++ compiler - [Herve Drolon] removed FreeImage_RotateClassic (deprecated function) - [Herve Drolon] removed internal Deprecation Manager (class DeprecationMgr) ! [Herve Drolon] DDS plugin now convert 16-bit uncompressed RGB (RGB444, RGB555, RGB565) to 24-bit RGB on loading + [Garrick Meeker] added saving support to the PSD plugin + [Tom Whittock] FreeImage_ConvertToRawBits now deals with palletized images containing transparency during conversion + [Mihail Naydenov] added saving support for 32-bit CMYK in JPEG plugin + [Herve Drolon] added FreeImage_Validate functions added FreeImage_Validate added FreeImage_ValidateU added FreeImage_ValidateFromHandle added FreeImage_ValidateFromMemory * [Pengsu Cheng] fixed PCX loader against malicious images with a bad window specification * [Herve Drolon] fixed TIFF loader with loading of RGB[A]F float images * [Garrick Meeker] improved loading speed of PSD plugin * [Herve Drolon] fixed support of snprintf in Visual Studio 2015 * [Herve Drolon] improved GIF signature validation * [Herve Drolon] improved TARGA signature validation * [Herve Drolon] disabled ICC sRGB profile checking in PluginPNG:Save * [Ghislain Vaillant] fixed endianness detection on some architectures * [Mihail Naydenov] fixed saving of 32-bit CMYK converted to 24-bit RGB on loading (remove ICC profile from Exif metadata) * [Mihail Naydenov] fixed FreeImage_IsTransparent and FreeImage_GetColorType returned value for RGBA[16,F] images flagged as CMYK * [Mihail Naydenov] fixed a bug in FreeImage_Clone when working with wrapped buffer (obtained from FreeImage_ConvertFromRawBitsEx) * [Mihail Naydenov] fixed a bug in PluginBMP:Save when saving a dib created with FreeImage_CreateView * [John Wordsworth] fixed loading of uncompressed DDS files when width / height are not a multiple of 4 * [Herve Drolon] fixed XPM loader against malicious images with a bad header specification * [Mihail Naydenov] fixed TIFF loader with Exif loading (saves and restores offset and dir when exif is loaded) * [Mihail Naydenov] refactored MultiPage and CacheFile mechanism * [Jojakim Stahl] fixed PCX file conversion crash on special files * [dartraiden] fixed FreeImage_FillBackground when using blending with an alpha-transparent foreground color over an opaque background * [Herve Drolon] fixed 64-bit conversion of parameters in sprintf calls (required with C++ 11) * [Peter Levine] fixed static cast to boolean in PluginJPEG * [Sergey Shambir] improved error handling in PluginPNG * [Joachim Reichel] fixed wrong exposure in exported HDR files * [Percy Schott] fixed PluginTIFF:ReadThumbnail behavior when reading TIF with Exif metadata March 15th, 2015 - 3.17.0 ! FreeImage now uses LibPNG 1.6.16 ! FreeImage now uses LibWebP 0.4.2 (GIT patch 2015-03-03) ! FreeImage now uses LibRaw 0.17-Alpha1 ! FreeImage now uses LibTIFF 4.0.4 (CVS patch 2015-01-26) ! FreeImage now uses OpenEXR 2.2.0 - [Herve Drolon] removed VS 2003 project files : this IDE is no longer supported because of its outdated C++ compiler + [Mihail Naydenov] added FreeImage_ConvertFromRawBitsEx + [Herve Drolon] added RAW_UNPROCESSED load flag to the RAW plugin + [Herve Drolon] added FreeImage_SetMetadataKeyValue + [Herve Drolon] added support for metadata writing to the JPEG-JXR plugin + [Herve Drolon] added VS 2013 project files + [Herve Drolon] added support for PNG tIME metadata (read/write, handle as Exif-TIFF DateTime) + [Carsten Klein] added explicit definition of endianness and color order in compiler options + [Carsten Klein] added FIQ_LFPQUANT quantizer algorithm + [Carsten Klein] added support for input 32-bit dib in Wu quantizer + [Tanner Helland] added FreeImage_ConvertToRGBAF and updated conversions in FreeImage_ConvertToType + [Herve Drolon] added FreeImage_ConvertToRGBA16 and updated conversions in FreeImage_ConvertToType + [Carsten Klein] added FreeImage_CreateView + [Carsten Klein] added FreeImage_RescaleRect + [Carsten Klein] added FreeImage_GetMemorySize * [Tanner Helland] ICO plugin: improved support for Vista icons * [fpgaminer] fixed a rounding error in RGB to greyscale conversion formula * [Sven-Hendrik Haase] fixed Makefile.fip so that it installs symlinks * [Joachim Reichel] fixed a potential memory access violation in PluginHDR Save function * [Christian Schluchter] fixed a bug in FreeImage_LookupSVGColor ("green" color was not found) * [Marco Altomonte] fixed TARGA signature validation for TARGA versions < 2.0 * [Jeremy Reyniers] fixed FreeImage_GetScanLine not working with very large images on x64 platforms * [Herve Drolon] improved PluginTIFF compatibility with LibTIFF 4 * [Aaron Shumate] fixed a segfault occuring on a corrupted animated GIF * [Herve Drolon] improved memory allocation in PluginRAW * [Herve Drolon] fixed loading/saving of TIFF containing a GPS IFD inside the Exif-TIFF metadata segment (the solution is to ignore the tag) * [Mihail Naydenov] fixed a bug in FreeImage_JPEGCrop*/_JPEGTransform* functions occuring when using the same source / destination filename * [Herve Drolon] fixed a bug with output image quality in PluginJP2::Save & PluginJ2K::Save functions (regression from FI 3.15.4) * [Herve Drolon] improved RAW file format detection * [Aaron Shumate] fixed FreeImage_GetFileType behavior with ANI file formats * [Herve Drolon] improved Exif reader so as to handle Exif IFD with a suspicious offset (can occur with maker notes) * [Herve Drolon] fixed a memory leak in PluginPNG:Save occuring when dealing with invalid PNG files * [Tanner Helland] fixed PNG plugin handling of 16-bit grayscale + 16-bit alpha images * [Tanner Helland] fixed PNG plugin handling of 16-bit grayscale + tRNS chunk images * [Tanner Helland] fixed PNG plugin handling of 24-bit RGB + tRNS chunk images * [Tanner Helland] fixed PNG plugin handling of 1-,4-bit greyscale/palettized + tRNS chunk images * [ekpyron] fixed invalid directory delimiter in include statement (mingw-w64) in Source/LibJXR/image/sys/strcodec.h * [ekpyron] fixed Invalid condition for defining _byteswap_ulong (mingw-w64) in Source/LibJXR/image/sys/strcodec.c * [tostercx] fixed FreeImage_Get*Mask not returning 0 for greyscale images * [robpats] fixed loading of external plugins when using UNICODE directory names to store plugins * [Herve Drolon] fixed loading of JXR files when using memory streams * [Carsten Klein] added Dist/ directory creation in Makefiles (in case it is not already present) March 23rd, 2014 - 3.16.0 ! FreeImage now uses LibJPEG 9a ! FreeImage now uses LibPNG 1.6.10 ! FreeImage now uses LibTIFF 4.0.3 (CVS patch 2013-11-30) ! FreeImage now uses LibRaw 0.16.0 ! FreeImage now uses OpenJPEG 2.1.0 (SVN patch 2748) ! FreeImage now uses ZLib 1.2.8 ! FreeImage now uses LibWebP 0.4.0 (GIT patch 2014-03-21) ! FreeImage now uses LibJXR 1.1 (GIT patch 2014-01-31) + [Herve Drolon] added loading & writing support for the JPEG-XR image format (also support the FIF_LOAD_NOPIXELS flag) + [Herve Drolon] added loading & writing support for the WebP image format (also support the FIF_LOAD_NOPIXELS flag) + [Herve Drolon] added support for FIF_LOAD_NOPIXELS flag to JP2/J2K plugins + [Gaël Zimmermann] added basic support for BMP v4, v5 in BMP plugin (useful for drag and drop from another application such as Firefox) + [Mihail Naydenov] FreeImage_GetFIFFromFilename[U] : added support for *rgb,*rgba,*.bw extensions to the SGI plugin + [Mihail Naydenov] improved FreeImage_Rescale speed & spatial accuracy + [Mihail Naydenov] improved JPEG transform functions and added new functions (see below) : added FreeImage_JPEGTransformFromHandle added FreeImage_JPEGTransformCombined added FreeImage_JPEGTransformCombinedU added FreeImage_JPEGTransformCombinedFromMemory * [Herve Drolon] fixed FreeImage_CloneTag behavior with ASCII data handling (regression that appeared in 3.15.2, affect metadata writing) * [Carsten Klein] ICO plugin: avoid using the AND mask when loading a 32-bit (already transparent) icon * [Andreas Baumann] HDR plugin: removed a comma at end of an enumerator list * [mark] added missing in OpenEXR (needed with mingw) * [Herve Drolon] added support for FIC_MINISWHITE color type inside FreeImage_GetColorType for FIT_UINT16 images * [Takamasa Mitsuji] FreeImage_Rescale : fixed a NULL-pointer access bug occurring for transparent images with a linear palette * [Herve Drolon] fixed PSD parser when reading PSD files with corrupted resources * [Herve Drolon] fixed TIFF plugin truncating metadata tag on loading if type is ASCII and it's value is of variable size (TIFF_VARIABLE) * [Herve Drolon] fixed loading of TGA 8-bit files with a palette size greater that 256 * [Anton Kukoba] TIFF parser didn't initialize the memory with zeros in stripped mode. This caused random bitmap data if the tiff file was corrupted/invalid. * [Herve Drolon] improved TGA file detection when the format version is < 2.0 * [Christian Heimes] fixed compiler errors on 64bit Linux (INT64 / UINT64 type mismatches and missing prototype for memset) * [Christian Heimes] fixed FreeImage_Get*Mask() returning 0 on 24-, -32-bit FIT_BITMAP images * [Mihail Naydenov] fixed GIF plugin LZW decoder failing on some images * [Herve Drolon] fixed the TIFF plugin against race condition when used simultaneously in multiple threads * [Herve Drolon] fixed float <--> rgb[a]f conversions when pixels are out of [0..1] range October 27th, 2012 - 3.15.4 ! FreeImage now uses LibPNG 1.5.13 ! FreeImage now uses LibRaw 0.14.7 ! FreeImage now uses ZLib 1.2.7 ! FreeImage now uses LibTIFF 4.0.3 ! FreeImage now uses OpenJPEG 1.5.1 ! FreeImage now uses OpenEXR 1.7.1 + [Herve Drolon] improved the speed of RAW files detection in FreeImage_GetFileType* functions + [Herve Drolon] added JPEG_GREYSCALE load flag to the JPEG plugin (force to load as 8-bit greyscale) + [Herve Drolon] added 64-bit RGBA to 24-bit conversion support in FreeImage_ConvertTo24Bits + [Carsten Klein] improved the speed of FreeImage_Rescale for FIT_BITMAP & UINT16, RGB[A]16 types + [Carsten Klein] improved the speed of FreeImage_ConvertToGreyscale * [Carsten Klein] updated makefile for building FreeImage with MinGW * [Herve Drolon] fixed BigTIFF signature validation in FreeImage_GetFileType* functions * [Carsten Klein] fixed handling of RGB-565 16-bit images (needed for conversion from HBITMAP to FIBITMAP) * [Herve Drolon] fixed loading of JPEG with invalid IPTC marker * [Herve Drolon] changed default TIF RowsPerStrips to image height when saving as TIF G3 or TIF G4 (improved compression) * [Herve Drolon] improved the memory behavior of the RAW plugin (do not allocate huge variables on the stack) * [Herve Drolon] fixed FreeImage_AllocateT so that it returns NULL with images with a zero width and/or height * [Herve Drolon] replaced FIUINT64/FIINT64 with standard types UINT64/INT64 * [Rustam Abdullaev] fixed PNG plugin with saving of transparent monochrome images * [Floris van den Berg] improved plugin registering when replacing an existing internal plugin with a new equivalent plugin * [Herve Drolon] fixed a crash when calling FreeImage_GetColorType on a 32-bit RGBA images loaded with the FIF_LOAD_NOPIXELS flag * [Herve Drolon] fixed FreeImage_SetTransparencyTable falsely setting a dib to 'transparent' when called with a count of 0 * [Carsten Klein] fixed storing of RGB masks for 16-bit RGB standard images in order to be in a MSDN compatible way * [Herve Drolon] added an error handling message inside HDR plugin when trying to save an unsupported format * [Corey Taylor] fixed DDS plugin color channel swapping for RGB color order, when using FREEIMAGE_COLORORDER_RGB color order * [Herve Drolon] fixed internal TagLib singleton initialization against double-checked locking so that it is multi-thread safe March 17th, 2012 - 3.15.3 ! FreeImage now uses LibPNG 1.5.9 ! FreeImage now uses LibTIFF 4.0.1 + [Herve Drolon] added new 64-bit data types FIINT64, FIUINT64 + [Herve Drolon] added new 64-bit metadata types to FREE_IMAGE_MDTYPE (FIDT_LONG8, FIDT_SLONG8, FIDT_IFD8) + [Herve Drolon] added support for 64-bit metadata types to FreeImage_TagToString * [Herve Drolon] fixed a regression with Fax3/Fax4 TIFF images on 64-bit OS (introduced with FI 3.15.2) * [Herve Drolon] fixed some gcc 4.4.6 warnings * [Petr Pytelka] refactored FreeImage_InsertPage and FreeImage_AppendPage * [Herve Drolon] fixed JP2/J2K plugins with saving of 32-bit dib with a fully opaque layer * [Herve Drolon] fixed loading of CMYK JPEG when using JPEG_CMYK load flag (need to invert pixels) * [Herve Drolon] fixed loading of CMYK PSD when using PSD_CMYK load flag February 20th, 2012 - 3.15.2 ! FreeImage now uses LibRaw 0.14.5 ! FreeImage now uses LibPNG 1.5.8 ! FreeImage now uses LibJPEG 8d ! FreeImage now uses ZLib 1.2.6 ! FreeImage now uses OpenJPEG 1.5.0 (released version) ! FreeImage now uses LibTIFF 4.0.0 - [Herve Drolon] removed dependency on LibMNG 1.0.10 (MNG and JNG files are now handled internally) + [Herve Drolon] replaced the MNG plugin with a new MNG internal FreeImage plugin (with read support) + [Herve Drolon] added a new JNG internal FreeImage plugin (with read/write support) + [Christian Heimes] added write support to the TIFF plugin for EXIF_MAIN tags + [Herve Drolon] added new Exif maker note tags + [Herve Drolon] added TAG_COMPRESSION conversion to FreeImage_TagToString * [Mylek Grey] enabled the use of multi-component transforms (MCT) in J2K and JP2 saving * [Herve Drolon] refactored PluginICO in order to correctly support Windows Vista 256x256 icons * [Herve Drolon] added minor speed improvements to FreeImage_Rescale * [Herve Drolon] fixed dib allocation failing with very large images (i.e. more than 4GB) * [Herve Drolon] fixed FreeImage_CloneTag behavior with ASCII data handling * [Herve Drolon] improved JPEG plugin behavior with very big images * [Herve Drolon] improved JPEG plugin behavior with C++ exceptions * [Herve Drolon] fixed loading of palettized PNG with more that 256 palette entries * [Herve Drolon] fixed a bug inside IFF plugin occuring when loading a 24-bit dib with a palette * [Herve Drolon] fixed a bug with loading of PNG images containing a cHRM chunk (regression introduced by LibPNG 1.5.4 and fixed by LibPNG 1.5.5) * [Herve Drolon] allowed loading of PNG with benign errors (such as images with too many IDATs) * [Mihail Naydenov] fixed some incorrect MIME types returned by FreeImage_GetFIFMimeType * [Herve Drolon] fixed loading of Exif with bad thumbnail data or with a bad first offset size July 25th, 2011 - 3.15.1 ! FreeImage now uses LibRaw 0.13.7 ! FreeImage now uses LibPNG 1.5.4 ! FreeImage now uses LibTIFF 3.9.5 ! FreeImage now uses OpenJPEG 1.5.0 (SVN patch 2011-07-23) + [Herve Drolon] added FreeImage_ConvertToRGB16 and updated FreeImage_ConvertToType + [Herve Drolon] added RAW_HALFSIZE flag to RAW plugin * [Herve Drolon] fixed a memory leak in JPEG plugin occuring when loading some corrupted images * [Eberhard Mattes] improved thread safety behavior inside internal TagLib class * [Hew How Chee] fixed a bug in FreeImage_EnlargeCanvas when called with negative left and right parameters and bpp <= 4 * [Herve Drolon] improved memory allocation checking in FreeImage_ConvertTo[Float/RGBF/UINT16] * [Herve Drolon] allowed loading of TIF with missing bitspersample/samplesperpixel/photometric tags * [Herve Drolon] fixed FreeImage_AllocateHeaderT against possible malloc overflow * [Herve Drolon] fixed CUT plugin against heap corruption vulnerability * [Herve Drolon] fixed BMP plugin for images with a truncated input data stream * [Herve Drolon] improved PCX format detection in FreeImage_GetFileType* functions * [Christian Heimes] fixed a TIFF G4 compression bug occuring with gcc-Version 4.1.2 20080704 (Red Hat 4.1.2-50) January 24th, 2011 - 3.15.0 ! FreeImage now uses LibRaw 0.13-Beta3 ! FreeImage now uses LibPNG 1.4.5 ! FreeImage now uses LibTIFF 3.9.4 (CVS patch 2011-01-03) ! FreeImage now uses LibJPEG 8c ! FreeImage now uses OpenJPEG 1.4.0 (SVN patch 2011-01-18) ! [Herve Drolon] FreeImage_CloneMetadata now clone resolution info returned by FreeImage_GetDotsPerMeter(X / Y) + [Herve Drolon] added loading support for "half float" format to TIF plugin + [Herve Drolon] FreeImage_IsTransparent is now independant of FREE_IMAGE_TYPE + [Herve Drolon] added FIT_UINT16 to FIT_RGBF conversion to FreeImage_ConvertToRGBF & FreeImage_ConvertToType + [Herve Drolon] added FreeImage_ConvertToUINT16 and updated FreeImage_ConvertToType + [Mihail Naydenov] added FreeImage_GetThumbnail / FreeImage_SetThumbnail + [Mihail Naydenov] added thumbnail support to Exif, JPEG, EXR, PSD, TGA, TIF formats + [Mihail Naydenov] added JPEG_BASELINE save flag to the JPEG plugin + [Herve Drolon] added new Exif-TIFF tags (PageName, PageNumber, XPosition, YPosition) and Exif WinXP tags + [Herve Drolon] added support for 256x256 icon size to PluginICO:Save * [Domingo Stephan] fixed a compilation error in TARGA plugin when using a big endian OS (OS X 10.6) * [Christian Heimes] fixed a compilation error with gcc 4.3.x and OpenEXR * [Eric Fruhinsholz] fixed a crash in JPEG plugin when reading a JPEG with corrupted XMP data * [Herve Drolon] improved FreeImage_MultigridPoissonSolver for images whose size is a power-of-two * [Herve Drolon] fixed a crash in PSD plugin when loading a PSD with a CMYK embedded thumbnail * [Herve Drolon] fixed loading of JPEG images with a not null but zero length IPTC segment (bad files produced by Picasa) * [Carsten Klein] fixed a bug in FreeImage_ColorQuantizeEx when using FIQ_WUQUANT quantizer * [Herve Drolon] added support for RGBA[16][F] to FreeImage_IsTransparent * [Herve Drolon] fixed loading of resolution info in TIFF CMYK images (bug introduced with 3.14.0) * [Tom May] fixed JPEG plugin crashing on some Exif files containing tags with an invalid tag length * [Herve Drolon] fixed a crash when loading TIFF images with a TIFFTAG_TRANSFERFUNCTION Exif tag * [Tom May] removed assertions in PSD plugin, causing crashes on some malformed images in debug mode * [Mihail Naydenov] fixed a crash in TIFF plugin when reading an uncommon 24-bit palettized file * [Carsten Klein] fixed a bug in FreeImage_EnlargeCanvas when using the function as a FreeImage_Copy function * [Herve Drolon] fixed a bug in PluginBMP with loading of OS/2 2.x palettized BMP * [luispedro] fixed a bug in PluginBMP when reading malformed 16-bit RGB-555 BMP August 12th, 2010 - 3.14.1 + [Mihail Naydenov] added support for FIF_LOAD_NOPIXELS flag to EXR plugin + [Herve Drolon] added support for FIF_LOAD_NOPIXELS flag to CUT, HDR, RAS, ICO, PNM, RAW, BMP, PFM, XPM plugins * [Eberhard Mattes] fixed memory allocation checking in multipage API * [Herve Drolon] (compiler options) removed Win32 OpenMP support introduced in 3.14.0 August 9th, 2010 - 3.14.0 ! FreeImage now uses OpenEXR 1.7.0 ! FreeImage now uses ZLib 1.2.5 ! FreeImage now uses LibPNG 1.4.3 ! FreeImage now uses LibJPEG 8b ! FreeImage now uses LibTIFF 3.9.4 (CVS patch 2010-07-13) ! FreeImage now uses LibRaw 0.10-Beta3 ! FreeImage now uses OpenJPEG 1.4.0 (SVN patch 2010-04-16) ! [Herve Drolon] FreeImage_AllocateT now builds a default greyscale palette for 8-bit images ! [Volodymyr Goncharov] FreeImage_LoadMultiBitmapFromMemory now supports read/write operations ! [Herve Drolon] FreeImage_OpenMultiBitmapFromHandle now supports read/write operations ! [Herve Drolon] greyscale conversions now use the Rec. 709 formula ! [Mihail Naydenov] saving RGBF images to TIFF no longer use LogLuv encoding (unless you use the TIFF_LOGLUV save flag) + [Herve Drolon] added FIT_FLOAT to FIT_RGBF conversion to FreeImage_ConvertToRGBF & FreeImage_ConvertToType + [Herve Drolon] added VS 2008 project files + [Herve Drolon] added FreeImage_ConvertToFloat + [Mihail Naydenov] added RLE saving to the Targa plugin (see flag TARGA_SAVE_RLE) + [Volodymyr Goncharov] added FreeImage_SaveMultiBitmapToHandle + [Herve Drolon] added FreeImage_SaveMultiBitmapToMemory + [Herve Drolon] added new Exif maker note tags + [Lucian Sabo] added JPEG_OPTIMIZE to PluginJPEG:Save + [Mihail Naydenov] improved support for Exif tag reading in TIFF plugin + [Mihail Naydenov] allowed dataWindow with minimal bounds different from zero in OpenEXR plugin + [Herve Drolon] added FIMD_EXIF_RAW metadata model + [Herve Drolon] JPEG plugin can load & save raw Exif data (see FIMD_EXIF_RAW) + [Herve Drolon] added FIF_LOAD_NOPIXELS load flag constant - used to load header & metadata only + [Herve Drolon] added FreeImage_HasPixels + [Herve Drolon] added FreeImage_FIFSupportsNoPixels + [Herve Drolon] added support for FIF_LOAD_NOPIXELS flag to JPEG, PNG, PCD, PCX plugins + [Mihail Naydenov] added support for FIF_LOAD_NOPIXELS flag to TGA, PSD, TIFF plugins + [Mihail Naydenov] added support for 16-bit image types to FreeImage_Invert + [Mihail Naydenov] improved PSD plugin (faster code, added support for CMYK and LAB loading) + added load flags PSD_CMYK & PSD_LAB + [Mihail Naydenov] improved TIFF plugin (CMYK 16-bit loading and saving / RGBAF saving) + added TIFF_LOGLUV save flag * [Herve Drolon] fixed FreeImage_GetFileType behavior with ANI file formats * [Herve Drolon] fixed loading of JNG with progressive-JPEG formats * [Mihail Naydenov] fixed loading of TGA with a corrupted rle count * [Herve Drolon] fixed conversion formula in FreeImage_PreMultiplyWithAlpha * [Christoph Brill] removed the use of libmng_data.h private API in MNG Plugin * [phe02sf] fixed handling of bad Exif-GPS data in a Nikon D5000 image * [Atsuhiro Igarashi] fixed handling of last data block in PluginGIF::Save (sometimes it saves corrupted images) * [Christian Heimes] fixed saving of G3 & G4 compressed TIFF with 1bpp on 64bit Linux * [Herve Drolon] fixed long data type being 64-bit on Unix/Linux platforms (use LONG/DWORD instead of long/unsigned long) * [Herve Drolon] fixed a memory leak in FreeImage_DeletePage * [Herve Drolon] fixed the loading of RGBZ images in OpenEXR plugin * [Lucian Sabo] improved conversion from 1-, 4-, 8-bpp transparent images to 32-bpp * [Roy F.] fixed a bug in FreeImage_EnlargeCanvas (unable to crop an image on the right) * [Herve Drolon] fixed the loading of Exif with unusual IFD offset value * [Eberhard Mattes] fixed page numbering info when saving multipage TIFF * [Herve Drolon] fixed PluginPICT causing an infinite loop on a malformed PICT image * [Eberhard Mattes] improved memory allocation checking when using the new operator * [Herve Drolon] (multipage internals) fixed a potential buffer overflow in ReplaceExtension * [Eberhard Mattes] improved error checking in FreeImage_CloseMultiBitmap December 22, 2009 - 3.13.1 ! FreeImage now uses libTIFF 3.9.2 ! FreeImage now uses OpenJPEG 1.3.0 (SVN patch 2009-11-05) ! FreeImage now uses libPNG 1.2.41 + [Berend Engelbrecht] added loading of Exif orientation tag in TIFF plugin + [Herve Drolon] added decoding support for the old and outdated JPEG-in-TIFF 6.0 format in TIFF plugin + [Herve Drolon] added new 'non standard' Exif tags + [Herve Drolon] added new Exif makernote tags * [Herve Drolon] fixed TIF plugin crashing on a malformed TIFF-JPEG compressed image * [Herve Drolon] fixed MNG plugin crashing on some old mng images * [Herve Drolon] fixed handling of 2-bit grayscale transparent PNG * [Herve Drolon] fixed a bug with the compression rate of JP2 and J2K encoders * [zestony] fixed TIF plugin with the '65535 bytes' pitch size limitation on saving * [Herve Drolon] fixed handling of PSD files with a non zero file header reserved member * [Lucian Sabo] PNG plugin now keep transparency when saving 1- or 4-bit transparent images September 28th, 2009 - 3.13.0 ! FreeImage now uses LibJPEG 7 ! FreeImage now uses LibRaw-Lite 0.7.2 ! FreeImage now uses libPNG 1.2.40 ! FreeImage now uses libTIFF 3.9.1 ! FreeImage_RotateClassic is deprecated (use FreeImage_Rotate instead) + [Herve Drolon] added support for all Photoshop supported color modes to PSD plugin + [Herve Drolon] added support for 32-bit to JNG/MNG plugin + [Amir Ebrahimi] added loading support for the PICT format + [Herve Drolon] added loading support for camera RAW formats (using LibRawLite wrapper for dcraw) + [Mihail Naydenov] added UNICODE functions FreeImage_JPEGTransformU and FreeImage_JPEGCropU + [Carsten Klein] added FreeImage_OpenMultiBitmapFromHandle + [Carsten Klein] added FreeImage_FillBackground + [Carsten Klein] added FreeImage_EnlargeCanvas + [Carsten Klein] added FreeImage_AllocateEx / FreeImage_AllocateExT + [Mihail Naydenov/Herve Drolon] added FreeImage_TmoReinhard05Ex + [Herve Drolon] added FIT_RGBA16 to FIT_RGBF conversion to FreeImage_ConvertToRGBF + [Herve Drolon] added FreeImage_Rotate (support for most image types, support background color) * [Christian Heimes] fixed function prototypes to use a void argument when no argument exist * [Herve Drolon] fixed RGB color ordering on Intel macs * [Herve Drolon] FreeImage_RotateClassic now keep transparency when applied to 8-bit images * [Herve Drolon] fixed handling of transparency info in FreeImage_Copy * [Herve Drolon] fixed a normalization error in FreeImage_GetAdjustColorsLookupTable * [Herve Drolon] fixed invalid Exif rotation in PluginJPEG for orientation cases 2 and 4 * [Mihail Naydenov / Carsten Klein] fixed compilation issues with MinGW32 * [Mihail Naydenov] improved the loading speed of all targa images * [Herve Drolon] FreeImage_TagToString now handles the Exif UserComment tag April 14th, 2009 - 3.12.0 ! FreeImage now uses libPNG 1.2.35 ! FreeImage now uses libTIFF 3.9.0beta (CVS patch 2009-02-12) ! FreeImage now uses OpenJPEG 1.3.0 (SVN patch 2008-08-21) ! [Herve Drolon] FreeImage_CloneMetadata no longer clone the FIMD_ANIMATION metadata (this was causing problems when saving to GIF format) + [Herve Drolon] added full support for the PFM format + [Herve Drolon] added JPEG_EXIFROTATE load flag to the JPEG plugin + [Herve Drolon] added 16-bit RGB(A) and float RGB(A)F support to FreeImage_GetChannel / FreeImage_SetChannel + [Herve Drolon] added src FIT_RGBA16 to dst 32-bit FIT_BITMAP conversion to FreeImage_ConvertToType * [Carsten Klein] FreeImage_Copy now copies transparency info, resolution info, ICC profile and metadata * [Carsten Klein] check for negative top/left values in FreeImage_Paste * [Christian Heimes] changed exceptions with a "catch(char *text)" to a "catch(const char *text)" to make GCC 4.1 happy * [Deif Lou] fixed a bug in FreeImage_SetTransparentIndex * [Thomas Maiwald] BMP plugin: on saving, fixed correct setting of bfSize BMP file header for palettized images * [Timothy Lee] fixed handling of frame disposal in GIF_PLAYBACK mode (GIF plugin) * [Herve Drolon] fixed handling of Exif Olympus Type 2 maker notes (not yet supported but now safely ignored) * [Rich Geldreich] fixed DXT1 color endpoint precision problem in DDS plugin * [Mihail Naydenov] improved loading speed of 24-bit targa images * [Eugene Golushkov] improved big endian / little endian swapping functions * [Carsten Klein/Jean-Philippe Goerke] improved FreeImage_SetMetadata / FreeImage_GetMetadata accessors * [Christian Ruppert] improved Linux Makefiles * [Eugene Golushkov] fixed PluginBMP alignment bug while saving 16 or 24bit BMP on big endian or Apple machines July 28th, 2008 - 3.11.0 ! FreeImage now uses libTIFF 3.9.0beta (CVS patch 2008-05-24) ! FreeImage now uses OpenJPEG 1.3.0 (SVN patch 2008-05-22) ! FreeImage now uses libMNG 1.0.10 ! FreeImage now uses libPNG 1.2.29 + [Yves Schmid] added 48-bit RGB to 32-bit conversion support in FreeImage_ConvertTo32Bits + [Aaron Shumate] added RGB16-to-BITMAP and All-to-RGBF conversion support in FreeImage_ConvertToType + [Benjamin English] added a new OpenGL sample to FreeImage/Examples + [Lucian Sabo] added new compression flags to the PNG plugin + [Lucian Sabo] added new compression flags to the JPEG plugin (chroma subsampling options) + [Noam Gat] added support for SGI grayscale + alpha pics to SGI plugin + [Herve Drolon] added FreeImage_CloneMetadata + [Herve Drolon] added loading support for Windows Vista icons in ICO Plugin + [Herve Drolon] added loading and saving support for RGBF images to the TIF plugin (using the LogLuv codec) * [Will Bryant] fixed makefile for MacOSX Tiger and Leopard * [Maria Gullickson] fixed a 'divide by 0' error in PNM plugin and FreeImage_Rescale function * [Yves Schmid] fixed a bug with Exif metadata reading in TIFF images * [Herve Drolon] fixed some possible 64-bit portability issues with pointer calculations * [wangyn] fixed a bug with transparency handling of indexed images in PNG plugin * [Martin Dyring-Andersen] fixed a bug with GIFinfo structure initialization in GIF plugin * [Noam Gat] fixed a bug in SGI plugin: when the file reports as two-dimensional, the height factor does not get loaded * [Herve Drolon] added error messages in FreeImage_Load(U) / FreeImage_Save(U) in case of bad filenames * [Scott Smith/Herve Drolon] added missing IPTC tags and renamed some tag names to be compatible with ExifTool naming convention * [Martin Dyring-Andersen] fixed a crash problem with images containing exif data emitted by Picassa * [Herve Drolon] removed RGBA to RGB transparent conversion in EXR plugin * [Glenn Pierce] improved the speed of FreeImage_FlipHorizontal * [Carsten Klein] fixed 65535 pixels width/height limitation in FreeImage_Paste November 19th, 2007 - 3.10.0 ! FreeImage now uses libTIFF 3.9.0beta (CVS patch 2007-10-05) ! FreeImage now uses OpenJPEG 1.2.0 (SVN patch 2007-07-13) ! FreeImage now uses OpenEXR 1.6.1 ! FreeImage now uses libPNG 1.2.23 ! FreeImage now hides its internal functions and internal libraries when compiled with gcc - [Herve Drolon] removed VS C+ 6.0 project files : this IDE is no longer supported because of OpenEXR + [Herve Drolon] added VS 2005 project files + [Herve Drolon] added full support for the OpenEXR format + [Herve Drolon] added full support for the JPEG-2000 format + [Herve Drolon] added FreeImage_TmoFattal02 tone mapping operator + [Ryan Rubley] added support for RGB vs BGR regardless of endian + [Herve Drolon] added FreeImage_MultigridPoissonSolver + [Carsten Klein] added FreeImage_PreMultiplyWithAlpha + [Carsten Klein] added __stdcall version of FreeImage_OutputMessage + [Carsten Klein] added new palette and color manipulation functions (see below) : added FreeImage_SetTransparentIndex added FreeImage_GetTransparentIndex added FreeImage_GetAdjustColorsLookupTable added FreeImage_AdjustColors added FreeImage_ApplyColorMapping added FreeImage_SwapColors added FreeImage_ApplyPaletteIndexMapping added FreeImage_SwapPaletteIndices * [Herve Drolon] fixed a bug in TIFF plugin when reading 8-bit + 8-bit alpha images * [Herve Drolon] fixed a bug in TIFF plugin when reading images with uncommon bitdepths * [rodrigo] fixed FreeImage exception handling under gcc (added -fexceptions to gcc compiler flags) * [Martin Dyring-Andersen] fixed GIF plugin crashing on some corrupted files * [Herve Drolon] fixed a bug with RLE encoding for 8-bit BMP images * [Herve Drolon] fixed GPS metadata being skipped when reading metadata in Exif images * [Herve Drolon] fixed a bug when reading OS/2 BMP images with a negative height * [Ryan Rubley] fixed a bug with loading of GIFs with large amounts of solid color areas * [Ryan Rubley] fixed OS X compile error in BitmapAccess.cpp * [Herve Drolon] fixed a bug in FreeImage_Paste when pasting non-standard image types * [Herve Drolon] saving 1-bit TIF with the TIFF_CCITTFAX3 flag is now compliant with the TIFF Class F specification * [Carsten Klein] fixed topdown parameter in FreeImage_ConvertFromRawBits and FreeImage_ConvertToRawBits being handled in reverse * [Herve Drolon] fixed a bug when reading some RLE-4 encoded BMP data * [Carsten Klein] conversion from 1-bit to 32-bit now keep possibly present transparency February 11th, 2007 - 3.9.3 ! FreeImage now uses libPNG 1.2.16 ! [Ryan Rubley/Ryan Davis] reworked the MacOSX makefile in order to fully support Universal Binary builds of FreeImage ! [Herve Drolon] makefiles are now generated from VS2003 project files instead of VS6 project files ! [Herve Drolon] changed JPEG load/save flag option values + [Herve Drolon] added support for RGBAF images to FreeImage_ConvertToRGBF + [Herve Drolon] FreeImage_Paste now works with any bitmap type + [Herve Drolon] added full support for 64-bit RGBA images to the PNG and TIFF plugins + [Jascha Wetzel] added JPEG downsampling feature to PluginJPEG:Load * [Thomas Chmielewski] fixed a bug in FreeImage_Dither and Bayer dithering, added FID_BAYER16x16 * [Raphael Gaquer] greatly improved the speed of the GIF encoder * [Herve Drolon] fixed saving of metadata in the PNG plugin * [rampelstinskin] fixed transparency table to alpha channel conversion for 4-bit images in FreeImage_ConvertTo32Bits * [Scott Smith] added missing IPTC tag named "Country/PrimaryLocationCode" * [Herve Drolon] changed #include by #include in FreeImage.h (needed by Solaris 9) * [Pierre Arnaud] fixed the use of FreeImage in low memory condition by checking some returned values of the malloc function * [Pierre Arnaud] fixed TagLib::getTagFieldName not being thread safe October 30th, 2006 - 3.9.2 ! FreeImage now uses libTIFF 3.8.2 (with patch 2006-10-13) + [Herve Drolon] added full support for 16-bit greyscale and 48-bit RGB to the PNM plugin + [Herve Drolon] added IPTC writing support to JPEG & TIFF plugins + [Herve Drolon] added new Exif maker note tags + [Herve Drolon] added FreeImage_JPEGCrop + [Thorsten Radde] added support for 8-bit palettized bitmaps in FreeImage_RotateClassic + [Matt Rice] added automatic call to FreeImage_Initialise / FreeImage_DeInitialise when using FreeImage as a .so + [Martin Dyring-Andersen] added FreeImage_LoadMultiBitmapFromMemory to the multi-page API + [Herve Drolon] added support for tiled TIFF images * [Carsten Klein] fixed a bug in FreeImage_SetMetadata occuring when deleting a tag * [Herve Drolon] fixed a bug in PNG plugin when reading Macromedia 'false' PNG files * [Thorsten Radde] added resolution support to PluginPSD * [Ryan Rubley] fixed a bug in PluginGIF occuring with interlaced GIF * [Ryan Rubley] fixed a bug in the multipage cache mechanism (internal FreeImage_FindBlock function) * [Thorsten Radde] fixed a stack corruption in TIFF plugin occuring when reading exif tags * [checkered] fixed a bug in the multipage cache mechanism causing VS2005 to crash on multipage files * [Herve Drolon] fixed a bug with transparency support of 1- and 4-bit images * [Roar Flolo] fixed a bug in PSD plugin when reading non compressed RGB images (alpha channel initialization) * [Nicolas Hatier] fixed a bug in PluginGIF when using the GIF_PLAYBACK flag * [Herve Drolon] fixed a bug in TIFF plugin when saving 8-bit images using LZW with differenciation * [Herve Drolon] fixed 64-bit compilation issue with LibPNG and assembler code July 16th, 2006 - 3.9.1 * [Ryan Rubley] fixed a bug in PluginGIF plugin causing FreeImage to crash on malformed GIF files July 6th, 2006 - 3.9.0 ! FreeImage now uses libPNG 1.2.12 ! FreeImage now uses libTIFF 3.8.2 (with patch 2006-06-24) ! FreeImage_Allocate/FreeImage_Allocate now set the resolution to 72 dpi instead of 0 + [Herve Drolon/Petr Pytelka] added a raw FAX G3 format loader + [Herve Drolon] added support for most image types to FreeImage_Rescale + [Herve Drolon] added FreeImage_MakeThumbnail + [Herve Drolon] added support for 64-bit images to FreeImage_ConvertTo32Bits + [Herve Drolon] added support for Exif tags to TIF plugin (read only) + [Herve Drolon] added FreeImage_ReadMemory + [Herve Drolon] added FreeImage_WriteMemory + [Herve Drolon] added new Exif maker note tags + [Sherman Wilcox] added a SGI file format loader + [Herve Drolon] added support for separated images to PluginTIFF + [Herve Drolon] added support for progressive-JPEG saving to PluginJPEG * [Carsten Klein] FreeImage_Dither and FreeImage_Threshold now work with palettized 8-bit dib * [Christophe Petit] fixed a bug in FreeImage_GetFIFFromFilenameU occuring with files without extension * [Leigh Brasington] fixed a bug in PluginGIF causing FreeImage not working on Win/98/ME * [Herve Drolon] fixed a bug in PluginTIFF with writing of JPEG-in-TIFF files * [Jojakim Stahl] fixed a bug occuring with 4-bit PCX files * [Sandor Szalacsi] fixed a bug in FreeImage_SetBackgroundColor (bkgnd clearing) * [Petr Pytelka] fixed PluginTIFF::_tiffSizeProc failing on some images * [Sherman Wilcox] fixed a bug in DDS plugin when loading images whose size is not a multiple of 4 * [Sherman Wilcox] fixed a memory leak in PluginDDS::LoadDXT_Helper * [Sherman Wilcox] fixed DDS plugin bad behavior with invalid DDS files (such as files with zero length) * [Floris van den Berg] fixed a memory leak in the MultiPage cache mechanism * [Herve Drolon] replaced WIN32 #define by _WIN32 #define as this is needed by VS2005 * [Herve Drolon] fixed a VS2005 error in FreeImage_DeletePage * [Petr Supina] fixed a pow(long,long) function not being standard ANSI C/C++ * [Petr Supina] fixed FreeImage_FindBlock function not being standard ANSI C/C++ * [Olaf Stoyke] added support for 64-bit Linux OS * [Craig Stark] fixed FreeImage support on Intel based Mac OS * [Herve Drolon] fixed PluginTIFF failing on bad fax tiff images (bad images are now loaded 'as is') * [Zack Simpson] fixed a bug occuring in rare situations with FreeImage_Aligned_Malloc September 5, 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