diff --git a/extern/FreeImage/FreeImage.dll b/extern/FreeImage/FreeImage.dll index 05859a8..d6fbf5d 100755 Binary files a/extern/FreeImage/FreeImage.dll and b/extern/FreeImage/FreeImage.dll differ diff --git a/extern/FreeImage/FreeImage.h b/extern/FreeImage/FreeImage.h index 7125acc..b61f1e1 100644 --- a/extern/FreeImage/FreeImage.h +++ b/extern/FreeImage/FreeImage.h @@ -47,8 +47,8 @@ // Version information ------------------------------------------------------ #define FREEIMAGE_MAJOR_VERSION 3 -#define FREEIMAGE_MINOR_VERSION 10 -#define FREEIMAGE_RELEASE_SERIAL 0 +#define FREEIMAGE_MINOR_VERSION 13 +#define FREEIMAGE_RELEASE_SERIAL 1 // Compiler options --------------------------------------------------------- @@ -98,7 +98,7 @@ // This really only affects 24 and 32 bit formats, the rest are always RGB order. #define FREEIMAGE_COLORORDER_BGR 0 #define FREEIMAGE_COLORORDER_RGB 1 -#if defined(__APPLE__) || defined(FREEIMAGE_BIGENDIAN) +#if defined(FREEIMAGE_BIGENDIAN) #define FREEIMAGE_COLORORDER FREEIMAGE_COLORORDER_RGB #else #define FREEIMAGE_COLORORDER FREEIMAGE_COLORORDER_BGR @@ -128,6 +128,10 @@ FI_STRUCT (FIMULTIBITMAP) { void *data; }; // Types used in the library (directly copied from Windows) ----------------- +#if defined(__MINGW32__) && defined(_WINDOWS_H) +#define _WINDOWS_ // prevent a bug in MinGW32 +#endif // __MINGW32__ + #ifndef _WINDOWS_ #define _WINDOWS_ @@ -410,7 +414,10 @@ FI_ENUM(FREE_IMAGE_FORMAT) { FIF_SGI = 28, FIF_EXR = 29, FIF_J2K = 30, - FIF_JP2 = 31 + FIF_JP2 = 31, + FIF_PFM = 32, + FIF_PICT = 33, + FIF_RAW = 34 }; /** Image type used in FreeImage. @@ -609,10 +616,10 @@ FI_STRUCT (FIMEMORY) { void *data; }; #ifndef PLUGINS #define PLUGINS -typedef const char *(DLL_CALLCONV *FI_FormatProc) (); -typedef const char *(DLL_CALLCONV *FI_DescriptionProc) (); -typedef const char *(DLL_CALLCONV *FI_ExtensionListProc) (); -typedef const char *(DLL_CALLCONV *FI_RegExprProc) (); +typedef const char *(DLL_CALLCONV *FI_FormatProc)(void); +typedef const char *(DLL_CALLCONV *FI_DescriptionProc)(void); +typedef const char *(DLL_CALLCONV *FI_ExtensionListProc)(void); +typedef const char *(DLL_CALLCONV *FI_RegExprProc)(void); typedef void *(DLL_CALLCONV *FI_OpenProc)(FreeImageIO *io, fi_handle handle, BOOL read); typedef void (DLL_CALLCONV *FI_CloseProc)(FreeImageIO *io, fi_handle handle, void *data); typedef int (DLL_CALLCONV *FI_PageCountProc)(FreeImageIO *io, fi_handle handle, void *data); @@ -620,10 +627,10 @@ typedef int (DLL_CALLCONV *FI_PageCapabilityProc)(FreeImageIO *io, fi_handle han typedef FIBITMAP *(DLL_CALLCONV *FI_LoadProc)(FreeImageIO *io, fi_handle handle, int page, int flags, void *data); typedef BOOL (DLL_CALLCONV *FI_SaveProc)(FreeImageIO *io, FIBITMAP *dib, fi_handle handle, int page, int flags, void *data); typedef BOOL (DLL_CALLCONV *FI_ValidateProc)(FreeImageIO *io, fi_handle handle); -typedef const char *(DLL_CALLCONV *FI_MimeProc) (); +typedef const char *(DLL_CALLCONV *FI_MimeProc)(void); typedef BOOL (DLL_CALLCONV *FI_SupportsExportBPPProc)(int bpp); typedef BOOL (DLL_CALLCONV *FI_SupportsExportTypeProc)(FREE_IMAGE_TYPE type); -typedef BOOL (DLL_CALLCONV *FI_SupportsICCProfilesProc)(); +typedef BOOL (DLL_CALLCONV *FI_SupportsICCProfilesProc)(void); FI_STRUCT (Plugin) { FI_FormatProc format_proc; @@ -672,16 +679,21 @@ typedef void (DLL_CALLCONV *FI_InitProc)(Plugin *plugin, int format_id); #define IFF_DEFAULT 0 #define J2K_DEFAULT 0 // save with a 16:1 rate #define JP2_DEFAULT 0 // save with a 16:1 rate -#define JPEG_DEFAULT 0 // loading (see JPEG_FAST); saving (see JPEG_QUALITYGOOD) +#define JPEG_DEFAULT 0 // loading (see JPEG_FAST); saving (see JPEG_QUALITYGOOD|JPEG_SUBSAMPLING_420) #define JPEG_FAST 0x0001 // load the file as fast as possible, sacrificing some quality #define JPEG_ACCURATE 0x0002 // load the file with the best quality, sacrificing some speed #define JPEG_CMYK 0x0004 // load separated CMYK "as is" (use | to combine with other load flags) +#define JPEG_EXIFROTATE 0x0008 // load and rotate according to Exif 'Orientation' tag if available #define JPEG_QUALITYSUPERB 0x80 // save with superb quality (100:1) #define JPEG_QUALITYGOOD 0x0100 // save with good quality (75:1) #define JPEG_QUALITYNORMAL 0x0200 // save with normal quality (50:1) #define JPEG_QUALITYAVERAGE 0x0400 // save with average quality (25:1) #define JPEG_QUALITYBAD 0x0800 // save with bad quality (10:1) #define JPEG_PROGRESSIVE 0x2000 // save as a progressive-JPEG (use | to combine with other save flags) +#define JPEG_SUBSAMPLING_411 0x1000 // save with high 4x1 chroma subsampling (4:1:1) +#define JPEG_SUBSAMPLING_420 0x4000 // save with medium 2x2 medium chroma subsampling (4:2:0) - default value +#define JPEG_SUBSAMPLING_422 0x8000 // save with low 2x1 chroma subsampling (4:2:2) +#define JPEG_SUBSAMPLING_444 0x10000 // save with no chroma subsampling (4:4:4) #define KOALA_DEFAULT 0 #define LBM_DEFAULT 0 #define MNG_DEFAULT 0 @@ -690,13 +702,23 @@ typedef void (DLL_CALLCONV *FI_InitProc)(Plugin *plugin, int format_id); #define PCD_BASEDIV4 2 // load the bitmap sized 384 x 256 #define PCD_BASEDIV16 3 // load the bitmap sized 192 x 128 #define PCX_DEFAULT 0 +#define PFM_DEFAULT 0 +#define PICT_DEFAULT 0 #define PNG_DEFAULT 0 -#define PNG_IGNOREGAMMA 1 // avoid gamma correction +#define PNG_IGNOREGAMMA 1 // loading: avoid gamma correction +#define PNG_Z_BEST_SPEED 0x0001 // save using ZLib level 1 compression flag (default value is 6) +#define PNG_Z_DEFAULT_COMPRESSION 0x0006 // save using ZLib level 6 compression flag (default recommended value) +#define PNG_Z_BEST_COMPRESSION 0x0009 // save using ZLib level 9 compression flag (default value is 6) +#define PNG_Z_NO_COMPRESSION 0x0100 // save without ZLib compression +#define PNG_INTERLACED 0x0200 // save using Adam7 interlacing (use | to combine with other save flags) #define PNM_DEFAULT 0 #define PNM_SAVE_RAW 0 // If set the writer saves in RAW format (i.e. P4, P5 or P6) #define PNM_SAVE_ASCII 1 // If set the writer saves in ASCII format (i.e. P1, P2 or P3) #define PSD_DEFAULT 0 #define RAS_DEFAULT 0 +#define RAW_DEFAULT 0 // load the file as linear RGB 48-bit +#define RAW_PREVIEW 1 // try to load the embedded JPEG preview with included Exif Data or default to RGB 24-bit +#define RAW_DISPLAY 2 // load the file as RGB 24-bit #define SGI_DEFAULT 0 #define TARGA_DEFAULT 0 #define TARGA_LOAD_RGB888 1 // If set the loader converts RGB555 and ARGB8888 -> RGB888. @@ -714,6 +736,15 @@ typedef void (DLL_CALLCONV *FI_InitProc)(Plugin *plugin, int format_id); #define XBM_DEFAULT 0 #define XPM_DEFAULT 0 +// Background filling options --------------------------------------------------------- +// Constants used in FreeImage_FillBackground and FreeImage_EnlargeCanvas + +#define FI_COLOR_IS_RGB_COLOR 0x00 // RGBQUAD color is a RGB color (contains no valid alpha channel) +#define FI_COLOR_IS_RGBA_COLOR 0x01 // RGBQUAD color is a RGBA color (contains a valid alpha channel) +#define FI_COLOR_FIND_EQUAL_COLOR 0x02 // For palettized images: lookup equal RGB color from palette +#define FI_COLOR_ALPHA_IS_INDEX 0x04 // The color's rgbReserved member (alpha) contains the palette index to be used +#define FI_COLOR_PALETTE_SEARCH_MASK (FI_COLOR_FIND_EQUAL_COLOR | FI_COLOR_ALPHA_IS_INDEX) // No color lookup is performed + #ifdef __cplusplus extern "C" { @@ -792,6 +823,7 @@ DLL_API BOOL DLL_CALLCONV FreeImage_FIFSupportsICCProfiles(FREE_IMAGE_FORMAT fif // Multipaging interface ---------------------------------------------------- DLL_API FIMULTIBITMAP * DLL_CALLCONV FreeImage_OpenMultiBitmap(FREE_IMAGE_FORMAT fif, const char *filename, BOOL create_new, BOOL read_only, BOOL keep_cache_in_memory FI_DEFAULT(FALSE), int flags FI_DEFAULT(0)); +DLL_API FIMULTIBITMAP * DLL_CALLCONV FreeImage_OpenMultiBitmapFromHandle(FREE_IMAGE_FORMAT fif, FreeImageIO *io, fi_handle handle, int flags FI_DEFAULT(0)); DLL_API BOOL DLL_CALLCONV FreeImage_CloseMultiBitmap(FIMULTIBITMAP *bitmap, int flags FI_DEFAULT(0)); DLL_API int DLL_CALLCONV FreeImage_GetPageCount(FIMULTIBITMAP *bitmap); DLL_API void DLL_CALLCONV FreeImage_AppendPage(FIMULTIBITMAP *bitmap, FIBITMAP *data); @@ -819,7 +851,6 @@ DLL_API BOOL DLL_CALLCONV FreeImage_IsLittleEndian(void); DLL_API BOOL DLL_CALLCONV FreeImage_LookupX11Color(const char *szColor, BYTE *nRed, BYTE *nGreen, BYTE *nBlue); DLL_API BOOL DLL_CALLCONV FreeImage_LookupSVGColor(const char *szColor, BYTE *nRed, BYTE *nGreen, BYTE *nBlue); - // Pixel access routines ---------------------------------------------------- DLL_API BYTE *DLL_CALLCONV FreeImage_GetBits(FIBITMAP *dib); @@ -938,6 +969,8 @@ DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertToType(FIBITMAP *src, FREE_IMAGE DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ToneMapping(FIBITMAP *dib, FREE_IMAGE_TMO tmo, double first_param FI_DEFAULT(0), double second_param FI_DEFAULT(0)); DLL_API FIBITMAP *DLL_CALLCONV FreeImage_TmoDrago03(FIBITMAP *src, double gamma FI_DEFAULT(2.2), double exposure FI_DEFAULT(0)); DLL_API FIBITMAP *DLL_CALLCONV FreeImage_TmoReinhard05(FIBITMAP *src, double intensity FI_DEFAULT(0), double contrast FI_DEFAULT(0)); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_TmoReinhard05Ex(FIBITMAP *src, double intensity FI_DEFAULT(0), double contrast FI_DEFAULT(0), double adaptation FI_DEFAULT(1), double color_correction FI_DEFAULT(0)); + DLL_API FIBITMAP *DLL_CALLCONV FreeImage_TmoFattal02(FIBITMAP *src, double color_saturation FI_DEFAULT(0.5), double attenuation FI_DEFAULT(0.85)); // ZLib interface ----------------------------------------------------------- @@ -953,7 +986,7 @@ DLL_API DWORD DLL_CALLCONV FreeImage_ZLibCRC32(DWORD crc, BYTE *source, DWORD so // -------------------------------------------------------------------------- // tag creation / destruction -DLL_API FITAG *DLL_CALLCONV FreeImage_CreateTag(); +DLL_API FITAG *DLL_CALLCONV FreeImage_CreateTag(void); DLL_API void DLL_CALLCONV FreeImage_DeleteTag(FITAG *tag); DLL_API FITAG *DLL_CALLCONV FreeImage_CloneTag(FITAG *tag); @@ -985,6 +1018,7 @@ DLL_API BOOL DLL_CALLCONV FreeImage_GetMetadata(FREE_IMAGE_MDMODEL model, FIBITM // helpers DLL_API unsigned DLL_CALLCONV FreeImage_GetMetadataCount(FREE_IMAGE_MDMODEL model, FIBITMAP *dib); +DLL_API BOOL DLL_CALLCONV FreeImage_CloneMetadata(FIBITMAP *dst, FIBITMAP *src); // tag to C string conversion DLL_API const char* DLL_CALLCONV FreeImage_TagToString(FREE_IMAGE_MDMODEL model, FITAG *tag, char *Make FI_DEFAULT(NULL)); @@ -994,11 +1028,14 @@ DLL_API const char* DLL_CALLCONV FreeImage_TagToString(FREE_IMAGE_MDMODEL model, // -------------------------------------------------------------------------- // rotation and flipping +/// @deprecated see FreeImage_Rotate DLL_API FIBITMAP *DLL_CALLCONV FreeImage_RotateClassic(FIBITMAP *dib, double angle); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Rotate(FIBITMAP *dib, double angle, const void *bkcolor FI_DEFAULT(NULL)); DLL_API FIBITMAP *DLL_CALLCONV FreeImage_RotateEx(FIBITMAP *dib, double angle, double x_shift, double y_shift, double x_origin, double y_origin, BOOL use_mask); DLL_API BOOL DLL_CALLCONV FreeImage_FlipHorizontal(FIBITMAP *dib); DLL_API BOOL DLL_CALLCONV FreeImage_FlipVertical(FIBITMAP *dib); DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(FALSE)); +DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(FALSE)); // upsampling / downsampling DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Rescale(FIBITMAP *dib, int dst_width, int dst_height, FREE_IMAGE_FILTER filter); @@ -1029,8 +1066,15 @@ DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Copy(FIBITMAP *dib, int left, int top, DLL_API BOOL DLL_CALLCONV FreeImage_Paste(FIBITMAP *dst, FIBITMAP *src, int left, int top, int alpha); DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Composite(FIBITMAP *fg, BOOL useFileBkg FI_DEFAULT(FALSE), RGBQUAD *appBkColor FI_DEFAULT(NULL), FIBITMAP *bg FI_DEFAULT(NULL)); DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom); +DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCropU(const wchar_t *src_file, const wchar_t *dst_file, int left, int top, int right, int bottom); DLL_API BOOL DLL_CALLCONV FreeImage_PreMultiplyWithAlpha(FIBITMAP *dib); +// background filling routines +DLL_API BOOL DLL_CALLCONV FreeImage_FillBackground(FIBITMAP *dib, const void *color, int options FI_DEFAULT(0)); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_EnlargeCanvas(FIBITMAP *src, int left, int top, int right, int bottom, const void *color, int options FI_DEFAULT(0)); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_AllocateEx(int width, int height, int bpp, const RGBQUAD *color, int options FI_DEFAULT(0), const RGBQUAD *palette FI_DEFAULT(NULL), unsigned red_mask FI_DEFAULT(0), unsigned green_mask FI_DEFAULT(0), unsigned blue_mask FI_DEFAULT(0)); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_AllocateExT(FREE_IMAGE_TYPE type, int width, int height, int bpp, const void *color, int options FI_DEFAULT(0), const RGBQUAD *palette FI_DEFAULT(NULL), unsigned red_mask FI_DEFAULT(0), unsigned green_mask FI_DEFAULT(0), unsigned blue_mask FI_DEFAULT(0)); + // miscellaneous algorithms DLL_API FIBITMAP *DLL_CALLCONV FreeImage_MultigridPoissonSolver(FIBITMAP *Laplacian, int ncycle FI_DEFAULT(3)); diff --git a/extern/FreeImage/FreeImage.lib b/extern/FreeImage/FreeImage.lib index 7e6e825..33927a8 100644 Binary files a/extern/FreeImage/FreeImage.lib and b/extern/FreeImage/FreeImage.lib differ diff --git a/extern/FreeImage/Whatsnew.txt b/extern/FreeImage/Whatsnew.txt index aaddffb..b14d348 100644 --- a/extern/FreeImage/Whatsnew.txt +++ b/extern/FreeImage/Whatsnew.txt @@ -5,6 +5,101 @@ What's New for FreeImage ! : changed + : added +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)