Remove unused external dependencies.

pull/322/head
Ignacio Castano 4 years ago
parent bf4799c9ac
commit 0be40976a2

@ -1,227 +0,0 @@
LIBRARY FreeImage.dll
EXPORTS
FreeImage_OutputMessageProc
FreeImage_AcquireMemory@12
FreeImage_AdjustBrightness@12
FreeImage_AdjustColors@32
FreeImage_AdjustContrast@12
FreeImage_AdjustCurve@12
FreeImage_AdjustGamma@12
FreeImage_Allocate@24
FreeImage_AllocateEx@36
FreeImage_AllocateExT@40
FreeImage_AllocateT@28
FreeImage_AppendPage@8
FreeImage_ApplyColorMapping@24
FreeImage_ApplyPaletteIndexMapping@20
FreeImage_Clone@4
FreeImage_CloneMetadata@8
FreeImage_CloneTag@4
FreeImage_CloseMemory@4
FreeImage_CloseMultiBitmap@8
FreeImage_ColorQuantize@8
FreeImage_ColorQuantizeEx@20
FreeImage_Composite@16
FreeImage_ConvertFromRawBits@36
FreeImage_ConvertLine16To24_555@12
FreeImage_ConvertLine16To24_565@12
FreeImage_ConvertLine16To32_555@12
FreeImage_ConvertLine16To32_565@12
FreeImage_ConvertLine16To4_555@12
FreeImage_ConvertLine16To4_565@12
FreeImage_ConvertLine16To8_555@12
FreeImage_ConvertLine16To8_565@12
FreeImage_ConvertLine16_555_To16_565@12
FreeImage_ConvertLine16_565_To16_555@12
FreeImage_ConvertLine1To16_555@16
FreeImage_ConvertLine1To16_565@16
FreeImage_ConvertLine1To24@16
FreeImage_ConvertLine1To32@16
FreeImage_ConvertLine1To4@12
FreeImage_ConvertLine1To8@12
FreeImage_ConvertLine24To16_555@12
FreeImage_ConvertLine24To16_565@12
FreeImage_ConvertLine24To32@12
FreeImage_ConvertLine24To4@12
FreeImage_ConvertLine24To8@12
FreeImage_ConvertLine32To16_555@12
FreeImage_ConvertLine32To16_565@12
FreeImage_ConvertLine32To24@12
FreeImage_ConvertLine32To4@12
FreeImage_ConvertLine32To8@12
FreeImage_ConvertLine4To16_555@16
FreeImage_ConvertLine4To16_565@16
FreeImage_ConvertLine4To24@16
FreeImage_ConvertLine4To32@16
FreeImage_ConvertLine4To8@12
FreeImage_ConvertLine8To16_555@16
FreeImage_ConvertLine8To16_565@16
FreeImage_ConvertLine8To24@16
FreeImage_ConvertLine8To32@16
FreeImage_ConvertLine8To4@16
FreeImage_ConvertTo16Bits555@4
FreeImage_ConvertTo16Bits565@4
FreeImage_ConvertTo24Bits@4
FreeImage_ConvertTo32Bits@4
FreeImage_ConvertTo4Bits@4
FreeImage_ConvertTo8Bits@4
FreeImage_ConvertToGreyscale@4
FreeImage_ConvertToRGBF@4
FreeImage_ConvertToRawBits@32
FreeImage_ConvertToStandardType@8
FreeImage_ConvertToType@12
FreeImage_Copy@20
FreeImage_CreateICCProfile@12
FreeImage_CreateTag@0
FreeImage_DeInitialise@0
FreeImage_DeletePage@8
FreeImage_DeleteTag@4
FreeImage_DestroyICCProfile@4
FreeImage_Dither@8
FreeImage_EnlargeCanvas@28
FreeImage_FIFSupportsExportBPP@8
FreeImage_FIFSupportsExportType@8
FreeImage_FIFSupportsICCProfiles@4
FreeImage_FIFSupportsReading@4
FreeImage_FIFSupportsWriting@4
FreeImage_FillBackground@12
FreeImage_FindCloseMetadata@4
FreeImage_FindFirstMetadata@12
FreeImage_FindNextMetadata@8
FreeImage_FlipHorizontal@4
FreeImage_FlipVertical@4
FreeImage_GetAdjustColorsLookupTable@32
FreeImage_GetBPP@4
FreeImage_GetBackgroundColor@8
FreeImage_GetBits@4
FreeImage_GetBlueMask@4
FreeImage_GetChannel@8
FreeImage_GetColorType@4
FreeImage_GetColorsUsed@4
FreeImage_GetComplexChannel@8
FreeImage_GetCopyrightMessage@0
FreeImage_GetDIBSize@4
FreeImage_GetDotsPerMeterX@4
FreeImage_GetDotsPerMeterY@4
FreeImage_GetFIFCount@0
FreeImage_GetFIFDescription@4
FreeImage_GetFIFExtensionList@4
FreeImage_GetFIFFromFilename@4
FreeImage_GetFIFFromFilenameU@4
FreeImage_GetFIFFromFormat@4
FreeImage_GetFIFFromMime@4
FreeImage_GetFIFMimeType@4
FreeImage_GetFIFRegExpr@4
FreeImage_GetFileType@8
FreeImage_GetFileTypeFromHandle@12
FreeImage_GetFileTypeFromMemory@8
FreeImage_GetFileTypeU@8
FreeImage_GetFormatFromFIF@4
FreeImage_GetGreenMask@4
FreeImage_GetHeight@4
FreeImage_GetHistogram@12
FreeImage_GetICCProfile@4
FreeImage_GetImageType@4
FreeImage_GetInfo@4
FreeImage_GetInfoHeader@4
FreeImage_GetLine@4
FreeImage_GetLockedPageNumbers@12
FreeImage_GetMetadata@16
FreeImage_GetMetadataCount@8
FreeImage_GetPageCount@4
FreeImage_GetPalette@4
FreeImage_GetPitch@4
FreeImage_GetPixelColor@16
FreeImage_GetPixelIndex@16
FreeImage_GetRedMask@4
FreeImage_GetScanLine@8
FreeImage_GetTagCount@4
FreeImage_GetTagDescription@4
FreeImage_GetTagID@4
FreeImage_GetTagKey@4
FreeImage_GetTagLength@4
FreeImage_GetTagType@4
FreeImage_GetTagValue@4
FreeImage_GetTransparencyCount@4
FreeImage_GetTransparencyTable@4
FreeImage_GetTransparentIndex@4
FreeImage_GetVersion@0
FreeImage_GetWidth@4
FreeImage_HasBackgroundColor@4
FreeImage_Initialise@4
FreeImage_InsertPage@12
FreeImage_Invert@4
FreeImage_IsLittleEndian@0
FreeImage_IsPluginEnabled@4
FreeImage_IsTransparent@4
FreeImage_JPEGCrop@24
FreeImage_JPEGCropU@24
FreeImage_JPEGTransform@16
FreeImage_JPEGTransformU@16
FreeImage_Load@12
FreeImage_LoadFromHandle@16
FreeImage_LoadFromMemory@12
FreeImage_LoadMultiBitmapFromMemory@12
FreeImage_LoadU@12
FreeImage_LockPage@8
FreeImage_LookupSVGColor@16
FreeImage_LookupX11Color@16
FreeImage_MakeThumbnail@12
FreeImage_MovePage@12
FreeImage_MultigridPoissonSolver@8
FreeImage_OpenMemory@8
FreeImage_OpenMultiBitmap@24
FreeImage_OpenMultiBitmapFromHandle@16
FreeImage_Paste@20
FreeImage_PreMultiplyWithAlpha@4
FreeImage_ReadMemory@16
FreeImage_RegisterExternalPlugin@20
FreeImage_RegisterLocalPlugin@20
FreeImage_Rescale@16
FreeImage_Rotate@16
FreeImage_RotateClassic@12
FreeImage_RotateEx@48
FreeImage_Save@16
FreeImage_SaveToHandle@20
FreeImage_SaveToMemory@16
FreeImage_SaveU@16
FreeImage_SeekMemory@12
FreeImage_SetBackgroundColor@8
FreeImage_SetChannel@12
FreeImage_SetComplexChannel@12
FreeImage_SetDotsPerMeterX@8
FreeImage_SetDotsPerMeterY@8
FreeImage_SetMetadata@16
FreeImage_SetOutputMessage@4
FreeImage_SetOutputMessageStdCall@4
FreeImage_SetPixelColor@16
FreeImage_SetPixelIndex@16
FreeImage_SetPluginEnabled@8
FreeImage_SetTagCount@8
FreeImage_SetTagDescription@8
FreeImage_SetTagID@8
FreeImage_SetTagKey@8
FreeImage_SetTagLength@8
FreeImage_SetTagType@8
FreeImage_SetTagValue@8
FreeImage_SetTransparencyTable@12
FreeImage_SetTransparent@8
FreeImage_SetTransparentIndex@8
FreeImage_SwapColors@16
FreeImage_SwapPaletteIndices@12
FreeImage_TagToString@12
FreeImage_TellMemory@4
FreeImage_Threshold@8
FreeImage_TmoDrago03@20
FreeImage_TmoFattal02@20
FreeImage_TmoReinhard05@20
FreeImage_TmoReinhard05Ex@36
FreeImage_ToneMapping@24
FreeImage_Unload@4
FreeImage_UnlockPage@12
FreeImage_WriteMemory@16
FreeImage_ZLibCRC32@12
FreeImage_ZLibCompress@16
FreeImage_ZLibGUnzip@16
FreeImage_ZLibGZip@16
FreeImage_ZLibUncompress@16

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

@ -1,993 +0,0 @@
What's New for FreeImage
* : fixed
- : removed
! : 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)
! 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 <stdint.h> by #include <inttypes.h> 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

Binary file not shown.

@ -1,142 +0,0 @@
FreeImage Public License - Version 1.0
---------------------------------------------
1. Definitions.
1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications.
1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor.
1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof.
1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data.
1.5. "Executable" means Covered Code in any form other than Source Code.
1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A.
1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.
1.8. "License" means this document.
1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a
Modification is:
A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications.
B. Any new file that contains any part of the Original Code or previous Modifications.
1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License.
1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control
compilation and installation of an Executable, or a list of source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge.
1.12. "You" means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or otherwise, or (b) ownership of fifty percent (50%) or more of the outstanding shares or beneficial ownership of such entity.
2. Source Code License.
2.1. The Initial Developer Grant.
The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:
(a) to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, or as part of a Larger Work; and
(b) under patents now or hereafter owned or controlled by Initial Developer, to make, have made, use and sell ("Utilize") the Original Code (or portions thereof), but solely to the extent that
any such patent is reasonably necessary to enable You to Utilize the Original Code (or portions thereof) and not to any greater extent that may be necessary to Utilize further Modifications or
combinations.
2.2. Contributor Grant.
Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:
(a) to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code or as part of a Larger Work; and
(b) under patents now or hereafter owned or controlled by Contributor, to Utilize the Contributor Version (or portions thereof), but solely to the extent that any such patent is reasonably necessary to enable You to Utilize the Contributor Version (or portions thereof), and not to any greater extent that
may be necessary to Utilize further Modifications or combinations.
3. Distribution Obligations.
3.1. Application of License.
The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or
restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5.
3.2. Availability of Source Code.
Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party.
3.3. Description of Modifications.
You must cause all Covered Code to which you contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code.
3.4. Intellectual Property Matters
(a) Third Party Claims.
If You have knowledge that a party claims an intellectual property right in particular functionality or code (or its utilization under this License), you must include a text file with the source code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If you obtain such knowledge after You make Your Modification available as described in Section 3.2, You shall promptly modify the LEGAL file in all copies You make
available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained.
(b) Contributor APIs.
If Your Modification is an application programming interface and You own or control patents which are reasonably necessary to implement that API, you must also include this information in the LEGAL file.
3.5. Required Notices.
You must duplicate the notice in Exhibit A in each file of the Source Code, and this License in any documentation for the Source Code, where You describe recipients' rights relating to Covered Code. If You created one or more Modification(s), You may add your name as a Contributor to the notice described in Exhibit A. If it is not possible to put such notice in a particular Source Code file due to its
structure, then you must include such notice in a location (such as a relevant directory file) where a user would be likely to look for such a notice. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or
liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of
warranty, support, indemnity or liability terms You offer.
3.6. Distribution of Executable Versions.
You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You
describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code under a license of Your choice, which may contain terms different from this License,
provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.
3.7. Larger Works.
You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code.
4. Inability to Comply Due to Statute or Regulation.
If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.
5. Application of this License.
This License applies to code to which the Initial Developer has attached the notice in Exhibit A, and to related Covered Code.
6. Versions of the License.
6.1. New Versions.
Floris van den Berg may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number.
6.2. Effect of New Versions.
Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Floris van den Berg
No one other than Floris van den Berg has the right to modify the terms applicable to Covered Code created under this License.
6.3. Derivative Works.
If you create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), you must (a) rename Your license so that the phrases "FreeImage", `FreeImage Public License", "FIPL", or any confusingly similar phrase do not appear anywhere in your license and (b) otherwise make it clear that your version of the license contains terms which differ from the FreeImage Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.)
7. DISCLAIMER OF WARRANTY.
COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
8. TERMINATION.
This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.
9. LIMITATION OF LIABILITY.
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
10. U.S. GOVERNMENT END USERS.
The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein.
11. MISCELLANEOUS.
This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by Dutch law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in, the The Netherlands: (a) unless otherwise agreed in writing, all disputes relating to this License (excepting any dispute relating to intellectual property rights) shall be subject to final and binding arbitration, with the losing party paying all costs of arbitration; (b) any arbitration relating to this Agreement shall be held in Almelo, The Netherlands; and (c) any litigation relating to this Agreement shall be subject to the jurisdiction of the court of Almelo, The Netherlands with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys fees and expenses. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License.
12. RESPONSIBILITY FOR CLAIMS.
Except in cases where another Contributor has failed to comply with Section 3.4, You are responsible for damages arising, directly or indirectly, out of Your utilization of rights under this License, based
on the number of copies of Covered Code you made available, the revenues you received from utilizing such rights, and other relevant factors. You agree to work with affected parties to distribute
responsibility on an equitable basis.
EXHIBIT A.
"The contents of this file are subject to the FreeImage Public License Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://home.wxs.nl/~flvdberg/freeimage-license.txt
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.

@ -1,342 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

@ -1,7 +0,0 @@
INSTALL(PROGRAMS
bin/win32/jpeg62.dll
bin/win32/libpng12.dll
bin/win32/libtiff3.dll
bin/win32/zlib1.dll
DESTINATION bin)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1,58 +0,0 @@
/* jconfig.h. Generated automatically by configure. */
/* jconfig.cfg --- source file edited by configure script */
/* see jconfig.doc for explanations */
#define HAVE_PROTOTYPES
#define HAVE_UNSIGNED_CHAR
#define HAVE_UNSIGNED_SHORT
#ifdef _WIN32
# include <windows.h>
/* Define "boolean" as unsigned char, not int, per Windows custom */
# if !defined __RPCNDR_H__ || defined __MINGW32__ /* don't conflict if rpcndr.h already read */
# ifndef boolean /* don't conflict if rpcndr.h already read */
typedef unsigned char boolean;
# endif /* boolean */
# endif /* __RPCNDR_H__ */
# define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */
# define USE_WINDOWS_MESSAGEBOX 1
#endif /* _WIN32 */
#undef void
#undef const
#undef CHAR_IS_UNSIGNED
#define HAVE_STDDEF_H
#define HAVE_STDLIB_H
#undef NEED_BSD_STRINGS
#undef NEED_SYS_TYPES_H
#undef NEED_FAR_POINTERS
#undef NEED_SHORT_EXTERNAL_NAMES
/* Define this if you get warnings about undefined structures. */
#undef INCOMPLETE_TYPES_BROKEN
#ifdef JPEG_INTERNALS
#undef RIGHT_SHIFT_IS_UNSIGNED
#define INLINE __inline__
/* These are for configuring the JPEG memory manager. */
#undef DEFAULT_MAX_MEM
#undef NO_MKTEMP
#endif /* JPEG_INTERNALS */
#ifdef JPEG_CJPEG_DJPEG
#define BMP_SUPPORTED /* BMP image file format */
#define GIF_SUPPORTED /* GIF image file format */
#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */
#define RLE_SUPPORTED /* Utah RLE image file format */
#define TARGA_SUPPORTED /* Targa image file format */
#undef TWO_FILE_COMMANDLINE
#undef NEED_SIGNAL_CATCHER
#undef DONT_USE_B_MODE
/* Define this if you want percent-done progress reports from cjpeg/djpeg. */
#undef PROGRESS_REPORT
#endif /* JPEG_CJPEG_DJPEG */

@ -1,303 +0,0 @@
/*
* jerror.h
*
* Copyright (C) 1994-1997, Thomas G. Lane.
* This file is part of the Independent JPEG Group's software.
* For conditions of distribution and use, see the accompanying README file.
*
* This file defines the error and message codes for the JPEG library.
* Edit this file to add new codes, or to translate the message strings to
* some other language.
* A set of error-reporting macros are defined too. Some applications using
* the JPEG library may wish to include this file to get the error codes
* and/or the macros.
*/
/*
* To define the enum list of message codes, include this file without
* defining macro JMESSAGE. To create a message string table, include it
* again with a suitable JMESSAGE definition (see jerror.c for an example).
*/
#ifndef JMESSAGE
#ifndef JERROR_H
/* First time through, define the enum list */
#define JMAKE_ENUM_LIST
#else
/* Repeated inclusions of this file are no-ops unless JMESSAGE is defined */
#define JMESSAGE(code,string)
#endif /* JERROR_H */
#endif /* JMESSAGE */
#ifdef JMAKE_ENUM_LIST
typedef enum {
#define JMESSAGE(code,string) code ,
#endif /* JMAKE_ENUM_LIST */
JMESSAGE(JMSG_NOMESSAGE, "Bogus message code %d") /* Must be first entry! */
/* For maintenance convenience, list is alphabetical by message code name */
JMESSAGE(JERR_ARITH_NOTIMPL,
"Sorry, there are legal restrictions on arithmetic coding")
JMESSAGE(JERR_BAD_ALIGN_TYPE, "ALIGN_TYPE is wrong, please fix")
JMESSAGE(JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix")
JMESSAGE(JERR_BAD_BUFFER_MODE, "Bogus buffer control mode")
JMESSAGE(JERR_BAD_COMPONENT_ID, "Invalid component ID %d in SOS")
JMESSAGE(JERR_BAD_CROP_SPEC, "Invalid crop request")
JMESSAGE(JERR_BAD_DCT_COEF, "DCT coefficient out of range")
JMESSAGE(JERR_BAD_DCTSIZE, "IDCT output block size %d not supported")
JMESSAGE(JERR_BAD_DROP_SAMPLING,
"Component index %d: mismatching sampling ratio %d:%d, %d:%d, %c")
JMESSAGE(JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition")
JMESSAGE(JERR_BAD_IN_COLORSPACE, "Bogus input colorspace")
JMESSAGE(JERR_BAD_J_COLORSPACE, "Bogus JPEG colorspace")
JMESSAGE(JERR_BAD_LENGTH, "Bogus marker length")
JMESSAGE(JERR_BAD_LIB_VERSION,
"Wrong JPEG library version: library is %d, caller expects %d")
JMESSAGE(JERR_BAD_MCU_SIZE, "Sampling factors too large for interleaved scan")
JMESSAGE(JERR_BAD_POOL_ID, "Invalid memory pool code %d")
JMESSAGE(JERR_BAD_PRECISION, "Unsupported JPEG data precision %d")
JMESSAGE(JERR_BAD_PROGRESSION,
"Invalid progressive parameters Ss=%d Se=%d Ah=%d Al=%d")
JMESSAGE(JERR_BAD_PROG_SCRIPT,
"Invalid progressive parameters at scan script entry %d")
JMESSAGE(JERR_BAD_SAMPLING, "Bogus sampling factors")
JMESSAGE(JERR_BAD_SCAN_SCRIPT, "Invalid scan script at entry %d")
JMESSAGE(JERR_BAD_STATE, "Improper call to JPEG library in state %d")
JMESSAGE(JERR_BAD_STRUCT_SIZE,
"JPEG parameter struct mismatch: library thinks size is %u, caller expects %u")
JMESSAGE(JERR_BAD_VIRTUAL_ACCESS, "Bogus virtual array access")
JMESSAGE(JERR_BUFFER_SIZE, "Buffer passed to JPEG library is too small")
JMESSAGE(JERR_CANT_SUSPEND, "Suspension not allowed here")
JMESSAGE(JERR_CCIR601_NOTIMPL, "CCIR601 sampling not implemented yet")
JMESSAGE(JERR_COMPONENT_COUNT, "Too many color components: %d, max %d")
JMESSAGE(JERR_CONVERSION_NOTIMPL, "Unsupported color conversion request")
JMESSAGE(JERR_DAC_INDEX, "Bogus DAC index %d")
JMESSAGE(JERR_DAC_VALUE, "Bogus DAC value 0x%x")
JMESSAGE(JERR_DHT_INDEX, "Bogus DHT index %d")
JMESSAGE(JERR_DQT_INDEX, "Bogus DQT index %d")
JMESSAGE(JERR_EMPTY_IMAGE, "Empty JPEG image (DNL not supported)")
JMESSAGE(JERR_EMS_READ, "Read from EMS failed")
JMESSAGE(JERR_EMS_WRITE, "Write to EMS failed")
JMESSAGE(JERR_EOI_EXPECTED, "Didn't expect more than one scan")
JMESSAGE(JERR_FILE_READ, "Input file read error")
JMESSAGE(JERR_FILE_WRITE, "Output file write error --- out of disk space?")
JMESSAGE(JERR_FRACT_SAMPLE_NOTIMPL, "Fractional sampling not implemented yet")
JMESSAGE(JERR_HUFF_CLEN_OVERFLOW, "Huffman code size table overflow")
JMESSAGE(JERR_HUFF_MISSING_CODE, "Missing Huffman code table entry")
JMESSAGE(JERR_IMAGE_TOO_BIG, "Maximum supported image dimension is %u pixels")
JMESSAGE(JERR_INPUT_EMPTY, "Empty input file")
JMESSAGE(JERR_INPUT_EOF, "Premature end of input file")
JMESSAGE(JERR_MISMATCHED_QUANT_TABLE,
"Cannot transcode due to multiple use of quantization table %d")
JMESSAGE(JERR_MISSING_DATA, "Scan script does not transmit all data")
JMESSAGE(JERR_MODE_CHANGE, "Invalid color quantization mode change")
JMESSAGE(JERR_NOTIMPL, "Not implemented yet")
JMESSAGE(JERR_NOT_COMPILED, "Requested feature was omitted at compile time")
JMESSAGE(JERR_NO_BACKING_STORE, "Backing store not supported")
JMESSAGE(JERR_NO_HUFF_TABLE, "Huffman table 0x%02x was not defined")
JMESSAGE(JERR_NO_IMAGE, "JPEG datastream contains no image")
JMESSAGE(JERR_NO_QUANT_TABLE, "Quantization table 0x%02x was not defined")
JMESSAGE(JERR_NO_SOI, "Not a JPEG file: starts with 0x%02x 0x%02x")
JMESSAGE(JERR_OUT_OF_MEMORY, "Insufficient memory (case %d)")
JMESSAGE(JERR_QUANT_COMPONENTS,
"Cannot quantize more than %d color components")
JMESSAGE(JERR_QUANT_FEW_COLORS, "Cannot quantize to fewer than %d colors")
JMESSAGE(JERR_QUANT_MANY_COLORS, "Cannot quantize to more than %d colors")
JMESSAGE(JERR_SOF_DUPLICATE, "Invalid JPEG file structure: two SOF markers")
JMESSAGE(JERR_SOF_NO_SOS, "Invalid JPEG file structure: missing SOS marker")
JMESSAGE(JERR_SOF_UNSUPPORTED, "Unsupported JPEG process: SOF type 0x%02x")
JMESSAGE(JERR_SOI_DUPLICATE, "Invalid JPEG file structure: two SOI markers")
JMESSAGE(JERR_SOS_NO_SOF, "Invalid JPEG file structure: SOS before SOF")
JMESSAGE(JERR_TFILE_CREATE, "Failed to create temporary file %s")
JMESSAGE(JERR_TFILE_READ, "Read failed on temporary file")
JMESSAGE(JERR_TFILE_SEEK, "Seek failed on temporary file")
JMESSAGE(JERR_TFILE_WRITE,
"Write failed on temporary file --- out of disk space?")
JMESSAGE(JERR_TOO_LITTLE_DATA, "Application transferred too few scanlines")
JMESSAGE(JERR_UNKNOWN_MARKER, "Unsupported marker type 0x%02x")
JMESSAGE(JERR_VIRTUAL_BUG, "Virtual array controller messed up")
JMESSAGE(JERR_WIDTH_OVERFLOW, "Image too wide for this implementation")
JMESSAGE(JERR_XMS_READ, "Read from XMS failed")
JMESSAGE(JERR_XMS_WRITE, "Write to XMS failed")
JMESSAGE(JMSG_COPYRIGHT, JCOPYRIGHT)
JMESSAGE(JMSG_VERSION, JVERSION)
JMESSAGE(JTRC_16BIT_TABLES,
"Caution: quantization tables are too coarse for baseline JPEG")
JMESSAGE(JTRC_ADOBE,
"Adobe APP14 marker: version %d, flags 0x%04x 0x%04x, transform %d")
JMESSAGE(JTRC_APP0, "Unknown APP0 marker (not JFIF), length %u")
JMESSAGE(JTRC_APP14, "Unknown APP14 marker (not Adobe), length %u")
JMESSAGE(JTRC_DAC, "Define Arithmetic Table 0x%02x: 0x%02x")
JMESSAGE(JTRC_DHT, "Define Huffman Table 0x%02x")
JMESSAGE(JTRC_DQT, "Define Quantization Table %d precision %d")
JMESSAGE(JTRC_DRI, "Define Restart Interval %u")
JMESSAGE(JTRC_EMS_CLOSE, "Freed EMS handle %u")
JMESSAGE(JTRC_EMS_OPEN, "Obtained EMS handle %u")
JMESSAGE(JTRC_EOI, "End Of Image")
JMESSAGE(JTRC_HUFFBITS, " %3d %3d %3d %3d %3d %3d %3d %3d")
JMESSAGE(JTRC_JFIF, "JFIF APP0 marker: version %d.%02d, density %dx%d %d")
JMESSAGE(JTRC_JFIF_BADTHUMBNAILSIZE,
"Warning: thumbnail image size does not match data length %u")
JMESSAGE(JTRC_JFIF_EXTENSION,
"JFIF extension marker: type 0x%02x, length %u")
JMESSAGE(JTRC_JFIF_THUMBNAIL, " with %d x %d thumbnail image")
JMESSAGE(JTRC_MISC_MARKER, "Miscellaneous marker 0x%02x, length %u")
JMESSAGE(JTRC_PARMLESS_MARKER, "Unexpected marker 0x%02x")
JMESSAGE(JTRC_QUANTVALS, " %4u %4u %4u %4u %4u %4u %4u %4u")
JMESSAGE(JTRC_QUANT_3_NCOLORS, "Quantizing to %d = %d*%d*%d colors")
JMESSAGE(JTRC_QUANT_NCOLORS, "Quantizing to %d colors")
JMESSAGE(JTRC_QUANT_SELECTED, "Selected %d colors for quantization")
JMESSAGE(JTRC_RECOVERY_ACTION, "At marker 0x%02x, recovery action %d")
JMESSAGE(JTRC_RST, "RST%d")
JMESSAGE(JTRC_SMOOTH_NOTIMPL,
"Smoothing not supported with nonstandard sampling ratios")
JMESSAGE(JTRC_SOF, "Start Of Frame 0x%02x: width=%u, height=%u, components=%d")
JMESSAGE(JTRC_SOF_COMPONENT, " Component %d: %dhx%dv q=%d")
JMESSAGE(JTRC_SOI, "Start of Image")
JMESSAGE(JTRC_SOS, "Start Of Scan: %d components")
JMESSAGE(JTRC_SOS_COMPONENT, " Component %d: dc=%d ac=%d")
JMESSAGE(JTRC_SOS_PARAMS, " Ss=%d, Se=%d, Ah=%d, Al=%d")
JMESSAGE(JTRC_TFILE_CLOSE, "Closed temporary file %s")
JMESSAGE(JTRC_TFILE_OPEN, "Opened temporary file %s")
JMESSAGE(JTRC_THUMB_JPEG,
"JFIF extension marker: JPEG-compressed thumbnail image, length %u")
JMESSAGE(JTRC_THUMB_PALETTE,
"JFIF extension marker: palette thumbnail image, length %u")
JMESSAGE(JTRC_THUMB_RGB,
"JFIF extension marker: RGB thumbnail image, length %u")
JMESSAGE(JTRC_UNKNOWN_IDS,
"Unrecognized component IDs %d %d %d, assuming YCbCr")
JMESSAGE(JTRC_XMS_CLOSE, "Freed XMS handle %u")
JMESSAGE(JTRC_XMS_OPEN, "Obtained XMS handle %u")
JMESSAGE(JWRN_ADOBE_XFORM, "Unknown Adobe color transform code %d")
JMESSAGE(JWRN_BOGUS_PROGRESSION,
"Inconsistent progression sequence for component %d coefficient %d")
JMESSAGE(JWRN_EXTRANEOUS_DATA,
"Corrupt JPEG data: %u extraneous bytes before marker 0x%02x")
JMESSAGE(JWRN_HIT_MARKER, "Corrupt JPEG data: premature end of data segment")
JMESSAGE(JWRN_HUFF_BAD_CODE, "Corrupt JPEG data: bad Huffman code")
JMESSAGE(JWRN_JFIF_MAJOR, "Warning: unknown JFIF revision number %d.%02d")
JMESSAGE(JWRN_JPEG_EOF, "Premature end of JPEG file")
JMESSAGE(JWRN_MUST_RESYNC,
"Corrupt JPEG data: found marker 0x%02x instead of RST%d")
JMESSAGE(JWRN_NOT_SEQUENTIAL, "Invalid SOS parameters for sequential JPEG")
JMESSAGE(JWRN_TOO_MUCH_DATA, "Application transferred too many scanlines")
#ifdef JMAKE_ENUM_LIST
JMSG_LASTMSGCODE
} J_MESSAGE_CODE;
#undef JMAKE_ENUM_LIST
#endif /* JMAKE_ENUM_LIST */
/* Zap JMESSAGE macro so that future re-inclusions do nothing by default */
#undef JMESSAGE
#ifndef JERROR_H
#define JERROR_H
/* Macros to simplify using the error and trace message stuff */
/* The first parameter is either type of cinfo pointer */
/* Fatal errors (print message and exit) */
#define ERREXIT(cinfo,code) \
((cinfo)->err->msg_code = (code), \
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
#define ERREXIT1(cinfo,code,p1) \
((cinfo)->err->msg_code = (code), \
(cinfo)->err->msg_parm.i[0] = (p1), \
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
#define ERREXIT2(cinfo,code,p1,p2) \
((cinfo)->err->msg_code = (code), \
(cinfo)->err->msg_parm.i[0] = (p1), \
(cinfo)->err->msg_parm.i[1] = (p2), \
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
#define ERREXIT3(cinfo,code,p1,p2,p3) \
((cinfo)->err->msg_code = (code), \
(cinfo)->err->msg_parm.i[0] = (p1), \
(cinfo)->err->msg_parm.i[1] = (p2), \
(cinfo)->err->msg_parm.i[2] = (p3), \
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
#define ERREXIT4(cinfo,code,p1,p2,p3,p4) \
((cinfo)->err->msg_code = (code), \
(cinfo)->err->msg_parm.i[0] = (p1), \
(cinfo)->err->msg_parm.i[1] = (p2), \
(cinfo)->err->msg_parm.i[2] = (p3), \
(cinfo)->err->msg_parm.i[3] = (p4), \
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
#define ERREXIT6(cinfo,code,p1,p2,p3,p4,p5,p6) \
((cinfo)->err->msg_code = (code), \
(cinfo)->err->msg_parm.i[0] = (p1), \
(cinfo)->err->msg_parm.i[1] = (p2), \
(cinfo)->err->msg_parm.i[2] = (p3), \
(cinfo)->err->msg_parm.i[3] = (p4), \
(cinfo)->err->msg_parm.i[4] = (p5), \
(cinfo)->err->msg_parm.i[5] = (p6), \
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
#define ERREXITS(cinfo,code,str) \
((cinfo)->err->msg_code = (code), \
strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
#define MAKESTMT(stuff) do { stuff } while (0)
/* Nonfatal errors (we can keep going, but the data is probably corrupt) */
#define WARNMS(cinfo,code) \
((cinfo)->err->msg_code = (code), \
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
#define WARNMS1(cinfo,code,p1) \
((cinfo)->err->msg_code = (code), \
(cinfo)->err->msg_parm.i[0] = (p1), \
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
#define WARNMS2(cinfo,code,p1,p2) \
((cinfo)->err->msg_code = (code), \
(cinfo)->err->msg_parm.i[0] = (p1), \
(cinfo)->err->msg_parm.i[1] = (p2), \
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
/* Informational/debugging messages */
#define TRACEMS(cinfo,lvl,code) \
((cinfo)->err->msg_code = (code), \
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
#define TRACEMS1(cinfo,lvl,code,p1) \
((cinfo)->err->msg_code = (code), \
(cinfo)->err->msg_parm.i[0] = (p1), \
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
#define TRACEMS2(cinfo,lvl,code,p1,p2) \
((cinfo)->err->msg_code = (code), \
(cinfo)->err->msg_parm.i[0] = (p1), \
(cinfo)->err->msg_parm.i[1] = (p2), \
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
#define TRACEMS3(cinfo,lvl,code,p1,p2,p3) \
MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
_mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); \
(cinfo)->err->msg_code = (code); \
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
#define TRACEMS4(cinfo,lvl,code,p1,p2,p3,p4) \
MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
_mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
(cinfo)->err->msg_code = (code); \
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
#define TRACEMS5(cinfo,lvl,code,p1,p2,p3,p4,p5) \
MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
_mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
_mp[4] = (p5); \
(cinfo)->err->msg_code = (code); \
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
#define TRACEMS8(cinfo,lvl,code,p1,p2,p3,p4,p5,p6,p7,p8) \
MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
_mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
_mp[4] = (p5); _mp[5] = (p6); _mp[6] = (p7); _mp[7] = (p8); \
(cinfo)->err->msg_code = (code); \
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
#define TRACEMSS(cinfo,lvl,code,str) \
((cinfo)->err->msg_code = (code), \
strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
#endif /* JERROR_H */

@ -1,426 +0,0 @@
/*
* jmorecfg.h
*
* Copyright (C) 1991-1997, Thomas G. Lane.
* This file is part of the Independent JPEG Group's software.
* For conditions of distribution and use, see the accompanying README file.
*
* This file contains additional configuration options that customize the
* JPEG software for special applications or support machine-dependent
* optimizations. Most users will not need to touch this file.
*/
/*
* Define BITS_IN_JSAMPLE as either
* 8 for 8-bit sample values (the usual setting)
* 12 for 12-bit sample values
* Only 8 and 12 are legal data precisions for lossy JPEG according to the
* JPEG standard, and the IJG code does not support anything else!
* We do not support run-time selection of data precision, sorry.
*/
#define BITS_IN_JSAMPLE 8 /* use 8 or 12 */
#if (defined (_MSC_VER) && (_MSC_VER >= 800))
#define HAVE_UNSIGNED_CHAR
#define HAVE_ALL_INTS
#define EXTERN(type) extern type __cdecl
#endif
/*
* Maximum number of components (color channels) allowed in JPEG image.
* To meet the letter of the JPEG spec, set this to 255. However, darn
* few applications need more than 4 channels (maybe 5 for CMYK + alpha
* mask). We recommend 10 as a reasonable compromise; use 4 if you are
* really short on memory. (Each allowed component costs a hundred or so
* bytes of storage, whether actually used in an image or not.)
*/
#define MAX_COMPONENTS 10 /* maximum number of image components */
/*
* Basic data types.
* You may need to change these if you have a machine with unusual data
* type sizes; for example, "char" not 8 bits, "short" not 16 bits,
* or "long" not 32 bits. We don't care whether "int" is 16 or 32 bits,
* but it had better be at least 16.
*/
/* Representation of a single sample (pixel element value).
* We frequently allocate large arrays of these, so it's important to keep
* them small. But if you have memory to burn and access to char or short
* arrays is very slow on your hardware, you might want to change these.
*/
#if BITS_IN_JSAMPLE == 8
/* JSAMPLE should be the smallest type that will hold the values 0..255.
* You can use a signed char by having GETJSAMPLE mask it with 0xFF.
*/
#ifdef HAVE_UNSIGNED_CHAR
typedef unsigned char JSAMPLE;
#define GETJSAMPLE(value) ((int) (value))
#else /* not HAVE_UNSIGNED_CHAR */
typedef char JSAMPLE;
#ifdef CHAR_IS_UNSIGNED
#define GETJSAMPLE(value) ((int) (value))
#else
#define GETJSAMPLE(value) ((int) (value) & 0xFF)
#endif /* CHAR_IS_UNSIGNED */
#endif /* HAVE_UNSIGNED_CHAR */
#define MAXJSAMPLE 255
#define CENTERJSAMPLE 128
#endif /* BITS_IN_JSAMPLE == 8 */
#if BITS_IN_JSAMPLE == 12
/* JSAMPLE should be the smallest type that will hold the values 0..4095.
* On nearly all machines "short" will do nicely.
*/
typedef short JSAMPLE;
#define GETJSAMPLE(value) ((int) (value))
#define MAXJSAMPLE 4095
#define CENTERJSAMPLE 2048
#endif /* BITS_IN_JSAMPLE == 12 */
/* Representation of a DCT frequency coefficient.
* This should be a signed value of at least 16 bits; "short" is usually OK.
* Again, we allocate large arrays of these, but you can change to int
* if you have memory to burn and "short" is really slow.
*/
typedef short JCOEF;
/* Compressed datastreams are represented as arrays of JOCTET.
* These must be EXACTLY 8 bits wide, at least once they are written to
* external storage. Note that when using the stdio data source/destination
* managers, this is also the data type passed to fread/fwrite.
*/
#ifdef HAVE_UNSIGNED_CHAR
typedef unsigned char JOCTET;
#define GETJOCTET(value) (value)
#else /* not HAVE_UNSIGNED_CHAR */
typedef char JOCTET;
#ifdef CHAR_IS_UNSIGNED
#define GETJOCTET(value) (value)
#else
#define GETJOCTET(value) ((value) & 0xFF)
#endif /* CHAR_IS_UNSIGNED */
#endif /* HAVE_UNSIGNED_CHAR */
/* These typedefs are used for various table entries and so forth.
* They must be at least as wide as specified; but making them too big
* won't cost a huge amount of memory, so we don't provide special
* extraction code like we did for JSAMPLE. (In other words, these
* typedefs live at a different point on the speed/space tradeoff curve.)
*/
/* UINT8 must hold at least the values 0..255. */
#ifndef HAVE_ALL_INTS
#ifdef HAVE_UNSIGNED_CHAR
typedef unsigned char UINT8;
#else /* not HAVE_UNSIGNED_CHAR */
#ifdef CHAR_IS_UNSIGNED
typedef char UINT8;
#else /* not CHAR_IS_UNSIGNED */
typedef short UINT8;
#endif /* CHAR_IS_UNSIGNED */
#endif /* HAVE_UNSIGNED_CHAR */
/* UINT16 must hold at least the values 0..65535. */
#ifdef HAVE_UNSIGNED_SHORT
typedef unsigned short UINT16;
#else /* not HAVE_UNSIGNED_SHORT */
typedef unsigned int UINT16;
#endif /* HAVE_UNSIGNED_SHORT */
/* INT16 must hold at least the values -32768..32767. */
#ifndef XMD_H /* X11/xmd.h correctly defines INT16 */
typedef short INT16;
#endif
/* INT32 must hold at least signed 32-bit values. */
#if !defined(XMD_H) && !defined(_WIN32) /* X11/xmd.h correctly defines INT32 */
typedef long INT32;
#endif
#endif /* HAVE_ALL_INTS */
/* Datatype used for image dimensions. The JPEG standard only supports
* images up to 64K*64K due to 16-bit fields in SOF markers. Therefore
* "unsigned int" is sufficient on all machines. However, if you need to
* handle larger images and you don't mind deviating from the spec, you
* can change this datatype.
*/
typedef unsigned int JDIMENSION;
#define JPEG_MAX_DIMENSION 65500L /* a tad under 64K to prevent overflows */
/* These macros are used in all function definitions and extern declarations.
* You could modify them if you need to change function linkage conventions;
* in particular, you'll need to do that to make the library a Windows DLL.
* Another application is to make all functions global for use with debuggers
* or code profilers that require it.
*/
#ifdef _WIN32
# if defined(ALL_STATIC)
# if defined(JPEG_DLL)
# undef JPEG_DLL
# endif
# if !defined(JPEG_STATIC)
# define JPEG_STATIC
# endif
# endif
# if defined(JPEG_DLL)
# if defined(JPEG_STATIC)
# undef JPEG_STATIC
# endif
# endif
# if defined(JPEG_DLL)
/* building a DLL */
# define JPEG_IMPEXP __declspec(dllexport)
# elif defined(JPEG_STATIC)
/* building or linking to a static library */
# define JPEG_IMPEXP
# else
/* linking to the DLL */
# define JPEG_IMPEXP __declspec(dllimport)
# endif
# if !defined(JPEG_API)
# define JPEG_API __cdecl
# endif
/* The only remaining magic that is necessary for cygwin */
#elif defined(__CYGWIN__)
# if !defined(JPEG_IMPEXP)
# define JPEG_IMPEXP
# endif
# if !defined(JPEG_API)
# define JPEG_API __cdecl
# endif
#endif
/* Ensure our magic doesn't hurt other platforms */
#if !defined(JPEG_IMPEXP)
# define JPEG_IMPEXP
#endif
#if !defined(JPEG_API)
# define JPEG_API
#endif
/* a function called through method pointers: */
#define METHODDEF(type) static type
/* a function used only in its module: */
#define LOCAL(type) static type
/* a function referenced thru EXTERNs: */
#define GLOBAL(type) type JPEG_API
/* a reference to a GLOBAL function: */
#ifndef EXTERN
# define EXTERN(type) extern JPEG_IMPEXP type JPEG_API
/* a reference to a "GLOBAL" function exported by sourcefiles of utility progs */
#endif /* EXTERN */
#define EXTERN_1(type) extern type JPEG_API
/* This macro is used to declare a "method", that is, a function pointer.
* We want to supply prototype parameters if the compiler can cope.
* Note that the arglist parameter must be parenthesized!
* Again, you can customize this if you need special linkage keywords.
*/
#ifdef HAVE_PROTOTYPES
#define JMETHOD(type,methodname,arglist) type (*methodname) arglist
#else
#define JMETHOD(type,methodname,arglist) type (*methodname) ()
#endif
/* Here is the pseudo-keyword for declaring pointers that must be "far"
* on 80x86 machines. Most of the specialized coding for 80x86 is handled
* by just saying "FAR *" where such a pointer is needed. In a few places
* explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol.
*/
/* jmorecfg.h line 220 */
/* HJH modification: several of the windows header files already define FAR
because of this, the code below was changed so that it only tinkers with
the FAR define if FAR is still undefined */
#ifndef FAR
#ifdef NEED_FAR_POINTERS
#define FAR far
#else
#define FAR
#endif
#endif
/*
* On a few systems, type boolean and/or its values FALSE, TRUE may appear
* in standard header files. Or you may have conflicts with application-
* specific header files that you want to include together with these files.
* Defining HAVE_BOOLEAN before including jpeglib.h should make it work.
*/
#ifndef HAVE_BOOLEAN
typedef int boolean;
#endif
#ifndef FALSE /* in case these macros already exist */
#define FALSE 0 /* values of boolean */
#endif
#ifndef TRUE
#define TRUE 1
#endif
/*
* The remaining options affect code selection within the JPEG library,
* but they don't need to be visible to most applications using the library.
* To minimize application namespace pollution, the symbols won't be
* defined unless JPEG_INTERNALS or JPEG_INTERNAL_OPTIONS has been defined.
*/
#ifdef JPEG_INTERNALS
#define JPEG_INTERNAL_OPTIONS
#endif
#ifdef JPEG_INTERNAL_OPTIONS
/*
* These defines indicate whether to include various optional functions.
* Undefining some of these symbols will produce a smaller but less capable
* library. Note that you can leave certain source files out of the
* compilation/linking process if you've #undef'd the corresponding symbols.
* (You may HAVE to do that if your compiler doesn't like null source files.)
*/
/* Arithmetic coding is unsupported for legal reasons. Complaints to IBM. */
/* Capability options common to encoder and decoder: */
#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */
#define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */
#define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */
/* Encoder capability options: */
#undef C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */
#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/
#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */
/* Note: if you selected 12-bit data precision, it is dangerous to turn off
* ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit
* precision, so jchuff.c normally uses entropy optimization to compute
* usable tables for higher precision. If you don't want to do optimization,
* you'll have to supply different default Huffman tables.
* The exact same statements apply for progressive JPEG: the default tables
* don't work for progressive mode. (This may get fixed, however.)
*/
#define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? */
/* Decoder capability options: */
#undef D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */
#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/
#define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */
#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */
#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */
#undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */
#define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */
#define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */
#define QUANT_2PASS_SUPPORTED /* 2-pass color quantization? */
/* more capability options later, no doubt */
/*
* Ordering of RGB data in scanlines passed to or from the application.
* If your application wants to deal with data in the order B,G,R, just
* change these macros. You can also deal with formats such as R,G,B,X
* (one extra byte per pixel) by changing RGB_PIXELSIZE. Note that changing
* the offsets will also change the order in which colormap data is organized.
* RESTRICTIONS:
* 1. The sample applications cjpeg,djpeg do NOT support modified RGB formats.
* 2. These macros only affect RGB<=>YCbCr color conversion, so they are not
* useful if you are using JPEG color spaces other than YCbCr or grayscale.
* 3. The color quantizer modules will not behave desirably if RGB_PIXELSIZE
* is not 3 (they don't understand about dummy color components!). So you
* can't use color quantization if you change that value.
*/
#define RGB_RED 0 /* Offset of Red in an RGB scanline element */
#define RGB_GREEN 1 /* Offset of Green */
#define RGB_BLUE 2 /* Offset of Blue */
#define RGB_PIXELSIZE 3 /* JSAMPLEs per RGB scanline element */
/* Definitions for speed-related optimizations. */
/* If your compiler supports inline functions, define INLINE
* as the inline keyword; otherwise define it as empty.
*/
#ifndef INLINE
#ifdef __GNUC__ /* for instance, GNU C knows about inline */
#define INLINE __inline__
#endif
#ifndef INLINE
#define INLINE /* default is to define it as empty */
#endif
#endif
/* On some machines (notably 68000 series) "int" is 32 bits, but multiplying
* two 16-bit shorts is faster than multiplying two ints. Define MULTIPLIER
* as short on such a machine. MULTIPLIER must be at least 16 bits wide.
*/
#ifndef MULTIPLIER
#define MULTIPLIER int /* type for fastest integer multiply */
#endif
/* FAST_FLOAT should be either float or double, whichever is done faster
* by your compiler. (Note that this type is only used in the floating point
* DCT routines, so it only matters if you've defined DCT_FLOAT_SUPPORTED.)
* Typically, float is faster in ANSI C compilers, while double is faster in
* pre-ANSI compilers (because they insist on converting to double anyway).
* The code below therefore chooses float if we have ANSI-style prototypes.
*/
#ifndef FAST_FLOAT
#ifdef HAVE_PROTOTYPES
#define FAST_FLOAT float
#else
#define FAST_FLOAT double
#endif
#endif
#endif /* JPEG_INTERNAL_OPTIONS */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,647 +0,0 @@
/* $Id: tiff.h,v 1.42 2005/12/23 15:10:45 dron Exp $ */
/*
* Copyright (c) 1988-1997 Sam Leffler
* Copyright (c) 1991-1997 Silicon Graphics, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation for any purpose is hereby granted without fee, provided
* that (i) the above copyright notices and this permission notice appear in
* all copies of the software and related documentation, and (ii) the names of
* Sam Leffler and Silicon Graphics may not be used in any advertising or
* publicity relating to the software without the specific, prior written
* permission of Sam Leffler and Silicon Graphics.
*
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
*
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*/
#ifndef _TIFF_
#define _TIFF_
#include "tiffconf.h"
/*
* Tag Image File Format (TIFF)
*
* Based on Rev 6.0 from:
* Developer's Desk
* Aldus Corporation
* 411 First Ave. South
* Suite 200
* Seattle, WA 98104
* 206-622-5500
*
* (http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf)
*
* For Big TIFF design notes see the following link
* http://gdal.maptools.org/twiki/bin/view/libtiff/BigTIFFDesign
*/
#define TIFF_VERSION 42
#define TIFF_BIGTIFF_VERSION 43
#define TIFF_BIGENDIAN 0x4d4d
#define TIFF_LITTLEENDIAN 0x4949
#define MDI_LITTLEENDIAN 0x5045
#define MDI_BIGENDIAN 0x4550
/*
* Intrinsic data types required by the file format:
*
* 8-bit quantities int8/uint8
* 16-bit quantities int16/uint16
* 32-bit quantities int32/uint32
* strings unsigned char*
*/
#ifndef HAVE_INT8
typedef signed char int8; /* NB: non-ANSI compilers may not grok */
#endif
typedef unsigned char uint8;
#ifndef HAVE_INT16
typedef short int16;
#endif
typedef unsigned short uint16; /* sizeof (uint16) must == 2 */
#if SIZEOF_INT == 4
#ifndef HAVE_INT32
typedef int int32;
#endif
typedef unsigned int uint32; /* sizeof (uint32) must == 4 */
#elif SIZEOF_LONG == 4
#ifndef HAVE_INT32
typedef long int32;
#endif
typedef unsigned long uint32; /* sizeof (uint32) must == 4 */
#endif
/* For TIFFReassignTagToIgnore */
enum TIFFIgnoreSense /* IGNORE tag table */
{
TIS_STORE,
TIS_EXTRACT,
TIS_EMPTY
};
/*
* TIFF header.
*/
typedef struct {
uint16 tiff_magic; /* magic number (defines byte order) */
#define TIFF_MAGIC_SIZE 2
uint16 tiff_version; /* TIFF version number */
#define TIFF_VERSION_SIZE 2
uint32 tiff_diroff; /* byte offset to first directory */
#define TIFF_DIROFFSET_SIZE 4
} TIFFHeader;
/*
* TIFF Image File Directories are comprised of a table of field
* descriptors of the form shown below. The table is sorted in
* ascending order by tag. The values associated with each entry are
* disjoint and may appear anywhere in the file (so long as they are
* placed on a word boundary).
*
* If the value is 4 bytes or less, then it is placed in the offset
* field to save space. If the value is less than 4 bytes, it is
* left-justified in the offset field.
*/
typedef struct {
uint16 tdir_tag; /* see below */
uint16 tdir_type; /* data type; see below */
uint32 tdir_count; /* number of items; length in spec */
uint32 tdir_offset; /* byte offset to field data */
} TIFFDirEntry;
/*
* NB: In the comments below,
* - items marked with a + are obsoleted by revision 5.0,
* - items marked with a ! are introduced in revision 6.0.
* - items marked with a % are introduced post revision 6.0.
* - items marked with a $ are obsoleted by revision 6.0.
* - items marked with a & are introduced by Adobe DNG specification.
*/
/*
* Tag data type information.
*
* Note: RATIONALs are the ratio of two 32-bit integer values.
*/
typedef enum {
TIFF_NOTYPE = 0, /* placeholder */
TIFF_BYTE = 1, /* 8-bit unsigned integer */
TIFF_ASCII = 2, /* 8-bit bytes w/ last byte null */
TIFF_SHORT = 3, /* 16-bit unsigned integer */
TIFF_LONG = 4, /* 32-bit unsigned integer */
TIFF_RATIONAL = 5, /* 64-bit unsigned fraction */
TIFF_SBYTE = 6, /* !8-bit signed integer */
TIFF_UNDEFINED = 7, /* !8-bit untyped data */
TIFF_SSHORT = 8, /* !16-bit signed integer */
TIFF_SLONG = 9, /* !32-bit signed integer */
TIFF_SRATIONAL = 10, /* !64-bit signed fraction */
TIFF_FLOAT = 11, /* !32-bit IEEE floating point */
TIFF_DOUBLE = 12, /* !64-bit IEEE floating point */
TIFF_IFD = 13 /* %32-bit unsigned integer (offset) */
} TIFFDataType;
/*
* TIFF Tag Definitions.
*/
#define TIFFTAG_SUBFILETYPE 254 /* subfile data descriptor */
#define FILETYPE_REDUCEDIMAGE 0x1 /* reduced resolution version */
#define FILETYPE_PAGE 0x2 /* one page of many */
#define FILETYPE_MASK 0x4 /* transparency mask */
#define TIFFTAG_OSUBFILETYPE 255 /* +kind of data in subfile */
#define OFILETYPE_IMAGE 1 /* full resolution image data */
#define OFILETYPE_REDUCEDIMAGE 2 /* reduced size image data */
#define OFILETYPE_PAGE 3 /* one page of many */
#define TIFFTAG_IMAGEWIDTH 256 /* image width in pixels */
#define TIFFTAG_IMAGELENGTH 257 /* image height in pixels */
#define TIFFTAG_BITSPERSAMPLE 258 /* bits per channel (sample) */
#define TIFFTAG_COMPRESSION 259 /* data compression technique */
#define COMPRESSION_NONE 1 /* dump mode */
#define COMPRESSION_CCITTRLE 2 /* CCITT modified Huffman RLE */
#define COMPRESSION_CCITTFAX3 3 /* CCITT Group 3 fax encoding */
#define COMPRESSION_CCITT_T4 3 /* CCITT T.4 (TIFF 6 name) */
#define COMPRESSION_CCITTFAX4 4 /* CCITT Group 4 fax encoding */
#define COMPRESSION_CCITT_T6 4 /* CCITT T.6 (TIFF 6 name) */
#define COMPRESSION_LZW 5 /* Lempel-Ziv & Welch */
#define COMPRESSION_OJPEG 6 /* !6.0 JPEG */
#define COMPRESSION_JPEG 7 /* %JPEG DCT compression */
#define COMPRESSION_NEXT 32766 /* NeXT 2-bit RLE */
#define COMPRESSION_CCITTRLEW 32771 /* #1 w/ word alignment */
#define COMPRESSION_PACKBITS 32773 /* Macintosh RLE */
#define COMPRESSION_THUNDERSCAN 32809 /* ThunderScan RLE */
/* codes 32895-32898 are reserved for ANSI IT8 TIFF/IT <dkelly@apago.com) */
#define COMPRESSION_IT8CTPAD 32895 /* IT8 CT w/padding */
#define COMPRESSION_IT8LW 32896 /* IT8 Linework RLE */
#define COMPRESSION_IT8MP 32897 /* IT8 Monochrome picture */
#define COMPRESSION_IT8BL 32898 /* IT8 Binary line art */
/* compression codes 32908-32911 are reserved for Pixar */
#define COMPRESSION_PIXARFILM 32908 /* Pixar companded 10bit LZW */
#define COMPRESSION_PIXARLOG 32909 /* Pixar companded 11bit ZIP */
#define COMPRESSION_DEFLATE 32946 /* Deflate compression */
#define COMPRESSION_ADOBE_DEFLATE 8 /* Deflate compression,
as recognized by Adobe */
/* compression code 32947 is reserved for Oceana Matrix <dev@oceana.com> */
#define COMPRESSION_DCS 32947 /* Kodak DCS encoding */
#define COMPRESSION_JBIG 34661 /* ISO JBIG */
#define COMPRESSION_SGILOG 34676 /* SGI Log Luminance RLE */
#define COMPRESSION_SGILOG24 34677 /* SGI Log 24-bit packed */
#define COMPRESSION_JP2000 34712 /* Leadtools JPEG2000 */
#define TIFFTAG_PHOTOMETRIC 262 /* photometric interpretation */
#define PHOTOMETRIC_MINISWHITE 0 /* min value is white */
#define PHOTOMETRIC_MINISBLACK 1 /* min value is black */
#define PHOTOMETRIC_RGB 2 /* RGB color model */
#define PHOTOMETRIC_PALETTE 3 /* color map indexed */
#define PHOTOMETRIC_MASK 4 /* $holdout mask */
#define PHOTOMETRIC_SEPARATED 5 /* !color separations */
#define PHOTOMETRIC_YCBCR 6 /* !CCIR 601 */
#define PHOTOMETRIC_CIELAB 8 /* !1976 CIE L*a*b* */
#define PHOTOMETRIC_ICCLAB 9 /* ICC L*a*b* [Adobe TIFF Technote 4] */
#define PHOTOMETRIC_ITULAB 10 /* ITU L*a*b* */
#define PHOTOMETRIC_LOGL 32844 /* CIE Log2(L) */
#define PHOTOMETRIC_LOGLUV 32845 /* CIE Log2(L) (u',v') */
#define TIFFTAG_THRESHHOLDING 263 /* +thresholding used on data */
#define THRESHHOLD_BILEVEL 1 /* b&w art scan */
#define THRESHHOLD_HALFTONE 2 /* or dithered scan */
#define THRESHHOLD_ERRORDIFFUSE 3 /* usually floyd-steinberg */
#define TIFFTAG_CELLWIDTH 264 /* +dithering matrix width */
#define TIFFTAG_CELLLENGTH 265 /* +dithering matrix height */
#define TIFFTAG_FILLORDER 266 /* data order within a byte */
#define FILLORDER_MSB2LSB 1 /* most significant -> least */
#define FILLORDER_LSB2MSB 2 /* least significant -> most */
#define TIFFTAG_DOCUMENTNAME 269 /* name of doc. image is from */
#define TIFFTAG_IMAGEDESCRIPTION 270 /* info about image */
#define TIFFTAG_MAKE 271 /* scanner manufacturer name */
#define TIFFTAG_MODEL 272 /* scanner model name/number */
#define TIFFTAG_STRIPOFFSETS 273 /* offsets to data strips */
#define TIFFTAG_ORIENTATION 274 /* +image orientation */
#define ORIENTATION_TOPLEFT 1 /* row 0 top, col 0 lhs */
#define ORIENTATION_TOPRIGHT 2 /* row 0 top, col 0 rhs */
#define ORIENTATION_BOTRIGHT 3 /* row 0 bottom, col 0 rhs */
#define ORIENTATION_BOTLEFT 4 /* row 0 bottom, col 0 lhs */
#define ORIENTATION_LEFTTOP 5 /* row 0 lhs, col 0 top */
#define ORIENTATION_RIGHTTOP 6 /* row 0 rhs, col 0 top */
#define ORIENTATION_RIGHTBOT 7 /* row 0 rhs, col 0 bottom */
#define ORIENTATION_LEFTBOT 8 /* row 0 lhs, col 0 bottom */
#define TIFFTAG_SAMPLESPERPIXEL 277 /* samples per pixel */
#define TIFFTAG_ROWSPERSTRIP 278 /* rows per strip of data */
#define TIFFTAG_STRIPBYTECOUNTS 279 /* bytes counts for strips */
#define TIFFTAG_MINSAMPLEVALUE 280 /* +minimum sample value */
#define TIFFTAG_MAXSAMPLEVALUE 281 /* +maximum sample value */
#define TIFFTAG_XRESOLUTION 282 /* pixels/resolution in x */
#define TIFFTAG_YRESOLUTION 283 /* pixels/resolution in y */
#define TIFFTAG_PLANARCONFIG 284 /* storage organization */
#define PLANARCONFIG_CONTIG 1 /* single image plane */
#define PLANARCONFIG_SEPARATE 2 /* separate planes of data */
#define TIFFTAG_PAGENAME 285 /* page name image is from */
#define TIFFTAG_XPOSITION 286 /* x page offset of image lhs */
#define TIFFTAG_YPOSITION 287 /* y page offset of image lhs */
#define TIFFTAG_FREEOFFSETS 288 /* +byte offset to free block */
#define TIFFTAG_FREEBYTECOUNTS 289 /* +sizes of free blocks */
#define TIFFTAG_GRAYRESPONSEUNIT 290 /* $gray scale curve accuracy */
#define GRAYRESPONSEUNIT_10S 1 /* tenths of a unit */
#define GRAYRESPONSEUNIT_100S 2 /* hundredths of a unit */
#define GRAYRESPONSEUNIT_1000S 3 /* thousandths of a unit */
#define GRAYRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */
#define GRAYRESPONSEUNIT_100000S 5 /* hundred-thousandths */
#define TIFFTAG_GRAYRESPONSECURVE 291 /* $gray scale response curve */
#define TIFFTAG_GROUP3OPTIONS 292 /* 32 flag bits */
#define TIFFTAG_T4OPTIONS 292 /* TIFF 6.0 proper name alias */
#define GROUP3OPT_2DENCODING 0x1 /* 2-dimensional coding */
#define GROUP3OPT_UNCOMPRESSED 0x2 /* data not compressed */
#define GROUP3OPT_FILLBITS 0x4 /* fill to byte boundary */
#define TIFFTAG_GROUP4OPTIONS 293 /* 32 flag bits */
#define TIFFTAG_T6OPTIONS 293 /* TIFF 6.0 proper name */
#define GROUP4OPT_UNCOMPRESSED 0x2 /* data not compressed */
#define TIFFTAG_RESOLUTIONUNIT 296 /* units of resolutions */
#define RESUNIT_NONE 1 /* no meaningful units */
#define RESUNIT_INCH 2 /* english */
#define RESUNIT_CENTIMETER 3 /* metric */
#define TIFFTAG_PAGENUMBER 297 /* page numbers of multi-page */
#define TIFFTAG_COLORRESPONSEUNIT 300 /* $color curve accuracy */
#define COLORRESPONSEUNIT_10S 1 /* tenths of a unit */
#define COLORRESPONSEUNIT_100S 2 /* hundredths of a unit */
#define COLORRESPONSEUNIT_1000S 3 /* thousandths of a unit */
#define COLORRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */
#define COLORRESPONSEUNIT_100000S 5 /* hundred-thousandths */
#define TIFFTAG_TRANSFERFUNCTION 301 /* !colorimetry info */
#define TIFFTAG_SOFTWARE 305 /* name & release */
#define TIFFTAG_DATETIME 306 /* creation date and time */
#define TIFFTAG_ARTIST 315 /* creator of image */
#define TIFFTAG_HOSTCOMPUTER 316 /* machine where created */
#define TIFFTAG_PREDICTOR 317 /* prediction scheme w/ LZW */
#define PREDICTOR_NONE 1 /* no prediction scheme used */
#define PREDICTOR_HORIZONTAL 2 /* horizontal differencing */
#define PREDICTOR_FLOATINGPOINT 3 /* floating point predictor */
#define TIFFTAG_WHITEPOINT 318 /* image white point */
#define TIFFTAG_PRIMARYCHROMATICITIES 319 /* !primary chromaticities */
#define TIFFTAG_COLORMAP 320 /* RGB map for pallette image */
#define TIFFTAG_HALFTONEHINTS 321 /* !highlight+shadow info */
#define TIFFTAG_TILEWIDTH 322 /* !tile width in pixels */
#define TIFFTAG_TILELENGTH 323 /* !tile height in pixels */
#define TIFFTAG_TILEOFFSETS 324 /* !offsets to data tiles */
#define TIFFTAG_TILEBYTECOUNTS 325 /* !byte counts for tiles */
#define TIFFTAG_BADFAXLINES 326 /* lines w/ wrong pixel count */
#define TIFFTAG_CLEANFAXDATA 327 /* regenerated line info */
#define CLEANFAXDATA_CLEAN 0 /* no errors detected */
#define CLEANFAXDATA_REGENERATED 1 /* receiver regenerated lines */
#define CLEANFAXDATA_UNCLEAN 2 /* uncorrected errors exist */
#define TIFFTAG_CONSECUTIVEBADFAXLINES 328 /* max consecutive bad lines */
#define TIFFTAG_SUBIFD 330 /* subimage descriptors */
#define TIFFTAG_INKSET 332 /* !inks in separated image */
#define INKSET_CMYK 1 /* !cyan-magenta-yellow-black color */
#define INKSET_MULTIINK 2 /* !multi-ink or hi-fi color */
#define TIFFTAG_INKNAMES 333 /* !ascii names of inks */
#define TIFFTAG_NUMBEROFINKS 334 /* !number of inks */
#define TIFFTAG_DOTRANGE 336 /* !0% and 100% dot codes */
#define TIFFTAG_TARGETPRINTER 337 /* !separation target */
#define TIFFTAG_EXTRASAMPLES 338 /* !info about extra samples */
#define EXTRASAMPLE_UNSPECIFIED 0 /* !unspecified data */
#define EXTRASAMPLE_ASSOCALPHA 1 /* !associated alpha data */
#define EXTRASAMPLE_UNASSALPHA 2 /* !unassociated alpha data */
#define TIFFTAG_SAMPLEFORMAT 339 /* !data sample format */
#define SAMPLEFORMAT_UINT 1 /* !unsigned integer data */
#define SAMPLEFORMAT_INT 2 /* !signed integer data */
#define SAMPLEFORMAT_IEEEFP 3 /* !IEEE floating point data */
#define SAMPLEFORMAT_VOID 4 /* !untyped data */
#define SAMPLEFORMAT_COMPLEXINT 5 /* !complex signed int */
#define SAMPLEFORMAT_COMPLEXIEEEFP 6 /* !complex ieee floating */
#define TIFFTAG_SMINSAMPLEVALUE 340 /* !variable MinSampleValue */
#define TIFFTAG_SMAXSAMPLEVALUE 341 /* !variable MaxSampleValue */
#define TIFFTAG_CLIPPATH 343 /* %ClipPath
[Adobe TIFF technote 2] */
#define TIFFTAG_XCLIPPATHUNITS 344 /* %XClipPathUnits
[Adobe TIFF technote 2] */
#define TIFFTAG_YCLIPPATHUNITS 345 /* %YClipPathUnits
[Adobe TIFF technote 2] */
#define TIFFTAG_INDEXED 346 /* %Indexed
[Adobe TIFF Technote 3] */
#define TIFFTAG_JPEGTABLES 347 /* %JPEG table stream */
#define TIFFTAG_OPIPROXY 351 /* %OPI Proxy [Adobe TIFF technote] */
/*
* Tags 512-521 are obsoleted by Technical Note #2 which specifies a
* revised JPEG-in-TIFF scheme.
*/
#define TIFFTAG_JPEGPROC 512 /* !JPEG processing algorithm */
#define JPEGPROC_BASELINE 1 /* !baseline sequential */
#define JPEGPROC_LOSSLESS 14 /* !Huffman coded lossless */
#define TIFFTAG_JPEGIFOFFSET 513 /* !pointer to SOI marker */
#define TIFFTAG_JPEGIFBYTECOUNT 514 /* !JFIF stream length */
#define TIFFTAG_JPEGRESTARTINTERVAL 515 /* !restart interval length */
#define TIFFTAG_JPEGLOSSLESSPREDICTORS 517 /* !lossless proc predictor */
#define TIFFTAG_JPEGPOINTTRANSFORM 518 /* !lossless point transform */
#define TIFFTAG_JPEGQTABLES 519 /* !Q matrice offsets */
#define TIFFTAG_JPEGDCTABLES 520 /* !DCT table offsets */
#define TIFFTAG_JPEGACTABLES 521 /* !AC coefficient offsets */
#define TIFFTAG_YCBCRCOEFFICIENTS 529 /* !RGB -> YCbCr transform */
#define TIFFTAG_YCBCRSUBSAMPLING 530 /* !YCbCr subsampling factors */
#define TIFFTAG_YCBCRPOSITIONING 531 /* !subsample positioning */
#define YCBCRPOSITION_CENTERED 1 /* !as in PostScript Level 2 */
#define YCBCRPOSITION_COSITED 2 /* !as in CCIR 601-1 */
#define TIFFTAG_REFERENCEBLACKWHITE 532 /* !colorimetry info */
#define TIFFTAG_XMLPACKET 700 /* %XML packet
[Adobe XMP Specification,
January 2004 */
#define TIFFTAG_OPIIMAGEID 32781 /* %OPI ImageID
[Adobe TIFF technote] */
/* tags 32952-32956 are private tags registered to Island Graphics */
#define TIFFTAG_REFPTS 32953 /* image reference points */
#define TIFFTAG_REGIONTACKPOINT 32954 /* region-xform tack point */
#define TIFFTAG_REGIONWARPCORNERS 32955 /* warp quadrilateral */
#define TIFFTAG_REGIONAFFINE 32956 /* affine transformation mat */
/* tags 32995-32999 are private tags registered to SGI */
#define TIFFTAG_MATTEING 32995 /* $use ExtraSamples */
#define TIFFTAG_DATATYPE 32996 /* $use SampleFormat */
#define TIFFTAG_IMAGEDEPTH 32997 /* z depth of image */
#define TIFFTAG_TILEDEPTH 32998 /* z depth/data tile */
/* tags 33300-33309 are private tags registered to Pixar */
/*
* TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH
* are set when an image has been cropped out of a larger image.
* They reflect the size of the original uncropped image.
* The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used
* to determine the position of the smaller image in the larger one.
*/
#define TIFFTAG_PIXAR_IMAGEFULLWIDTH 33300 /* full image size in x */
#define TIFFTAG_PIXAR_IMAGEFULLLENGTH 33301 /* full image size in y */
/* Tags 33302-33306 are used to identify special image modes and data
* used by Pixar's texture formats.
*/
#define TIFFTAG_PIXAR_TEXTUREFORMAT 33302 /* texture map format */
#define TIFFTAG_PIXAR_WRAPMODES 33303 /* s & t wrap modes */
#define TIFFTAG_PIXAR_FOVCOT 33304 /* cotan(fov) for env. maps */
#define TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN 33305
#define TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA 33306
/* tag 33405 is a private tag registered to Eastman Kodak */
#define TIFFTAG_WRITERSERIALNUMBER 33405 /* device serial number */
/* tag 33432 is listed in the 6.0 spec w/ unknown ownership */
#define TIFFTAG_COPYRIGHT 33432 /* copyright string */
/* IPTC TAG from RichTIFF specifications */
#define TIFFTAG_RICHTIFFIPTC 33723
/* 34016-34029 are reserved for ANSI IT8 TIFF/IT <dkelly@apago.com) */
#define TIFFTAG_IT8SITE 34016 /* site name */
#define TIFFTAG_IT8COLORSEQUENCE 34017 /* color seq. [RGB,CMYK,etc] */
#define TIFFTAG_IT8HEADER 34018 /* DDES Header */
#define TIFFTAG_IT8RASTERPADDING 34019 /* raster scanline padding */
#define TIFFTAG_IT8BITSPERRUNLENGTH 34020 /* # of bits in short run */
#define TIFFTAG_IT8BITSPEREXTENDEDRUNLENGTH 34021/* # of bits in long run */
#define TIFFTAG_IT8COLORTABLE 34022 /* LW colortable */
#define TIFFTAG_IT8IMAGECOLORINDICATOR 34023 /* BP/BL image color switch */
#define TIFFTAG_IT8BKGCOLORINDICATOR 34024 /* BP/BL bg color switch */
#define TIFFTAG_IT8IMAGECOLORVALUE 34025 /* BP/BL image color value */
#define TIFFTAG_IT8BKGCOLORVALUE 34026 /* BP/BL bg color value */
#define TIFFTAG_IT8PIXELINTENSITYRANGE 34027 /* MP pixel intensity value */
#define TIFFTAG_IT8TRANSPARENCYINDICATOR 34028 /* HC transparency switch */
#define TIFFTAG_IT8COLORCHARACTERIZATION 34029 /* color character. table */
#define TIFFTAG_IT8HCUSAGE 34030 /* HC usage indicator */
#define TIFFTAG_IT8TRAPINDICATOR 34031 /* Trapping indicator
(untrapped=0, trapped=1) */
#define TIFFTAG_IT8CMYKEQUIVALENT 34032 /* CMYK color equivalents */
/* tags 34232-34236 are private tags registered to Texas Instruments */
#define TIFFTAG_FRAMECOUNT 34232 /* Sequence Frame Count */
/* tag 34377 is private tag registered to Adobe for PhotoShop */
#define TIFFTAG_PHOTOSHOP 34377
/* tags 34665, 34853 and 40965 are documented in EXIF specification */
#define TIFFTAG_EXIFIFD 34665 /* Pointer to EXIF private directory */
/* tag 34750 is a private tag registered to Adobe? */
#define TIFFTAG_ICCPROFILE 34675 /* ICC profile data */
/* tag 34750 is a private tag registered to Pixel Magic */
#define TIFFTAG_JBIGOPTIONS 34750 /* JBIG options */
#define TIFFTAG_GPSIFD 34853 /* Pointer to GPS private directory */
/* tags 34908-34914 are private tags registered to SGI */
#define TIFFTAG_FAXRECVPARAMS 34908 /* encoded Class 2 ses. parms */
#define TIFFTAG_FAXSUBADDRESS 34909 /* received SubAddr string */
#define TIFFTAG_FAXRECVTIME 34910 /* receive time (secs) */
#define TIFFTAG_FAXDCS 34911 /* encoded fax ses. params, Table 2/T.30 */
/* tags 37439-37443 are registered to SGI <gregl@sgi.com> */
#define TIFFTAG_STONITS 37439 /* Sample value to Nits */
/* tag 34929 is a private tag registered to FedEx */
#define TIFFTAG_FEDEX_EDR 34929 /* unknown use */
#define TIFFTAG_INTEROPERABILITYIFD 40965 /* Pointer to Interoperability private directory */
/* Adobe Digital Negative (DNG) format tags */
#define TIFFTAG_DNGVERSION 50706 /* &DNG version number */
#define TIFFTAG_DNGBACKWARDVERSION 50707 /* &DNG compatibility version */
#define TIFFTAG_UNIQUECAMERAMODEL 50708 /* &name for the camera model */
#define TIFFTAG_LOCALIZEDCAMERAMODEL 50709 /* &localized camera model
name */
#define TIFFTAG_CFAPLANECOLOR 50710 /* &CFAPattern->LinearRaw space
mapping */
#define TIFFTAG_CFALAYOUT 50711 /* &spatial layout of the CFA */
#define TIFFTAG_LINEARIZATIONTABLE 50712 /* &lookup table description */
#define TIFFTAG_BLACKLEVELREPEATDIM 50713 /* &repeat pattern size for
the BlackLevel tag */
#define TIFFTAG_BLACKLEVEL 50714 /* &zero light encoding level */
#define TIFFTAG_BLACKLEVELDELTAH 50715 /* &zero light encoding level
differences (columns) */
#define TIFFTAG_BLACKLEVELDELTAV 50716 /* &zero light encoding level
differences (rows) */
#define TIFFTAG_WHITELEVEL 50717 /* &fully saturated encoding
level */
#define TIFFTAG_DEFAULTSCALE 50718 /* &default scale factors */
#define TIFFTAG_DEFAULTCROPORIGIN 50719 /* &origin of the final image
area */
#define TIFFTAG_DEFAULTCROPSIZE 50720 /* &size of the final image
area */
#define TIFFTAG_COLORMATRIX1 50721 /* &XYZ->reference color space
transformation matrix 1 */
#define TIFFTAG_COLORMATRIX2 50722 /* &XYZ->reference color space
transformation matrix 2 */
#define TIFFTAG_CAMERACALIBRATION1 50723 /* &calibration matrix 1 */
#define TIFFTAG_CAMERACALIBRATION2 50724 /* &calibration matrix 2 */
#define TIFFTAG_REDUCTIONMATRIX1 50725 /* &dimensionality reduction
matrix 1 */
#define TIFFTAG_REDUCTIONMATRIX2 50726 /* &dimensionality reduction
matrix 2 */
#define TIFFTAG_ANALOGBALANCE 50727 /* &gain applied the stored raw
values*/
#define TIFFTAG_ASSHOTNEUTRAL 50728 /* &selected white balance in
linear reference space */
#define TIFFTAG_ASSHOTWHITEXY 50729 /* &selected white balance in
x-y chromaticity
coordinates */
#define TIFFTAG_BASELINEEXPOSURE 50730 /* &how much to move the zero
point */
#define TIFFTAG_BASELINENOISE 50731 /* &relative noise level */
#define TIFFTAG_BASELINESHARPNESS 50732 /* &relative amount of
sharpening */
#define TIFFTAG_BAYERGREENSPLIT 50733 /* &how closely the values of
the green pixels in the
blue/green rows track the
values of the green pixels
in the red/green rows */
#define TIFFTAG_LINEARRESPONSELIMIT 50734 /* &non-linear encoding range */
#define TIFFTAG_CAMERASERIALNUMBER 50735 /* &camera's serial number */
#define TIFFTAG_LENSINFO 50736 /* info about the lens */
#define TIFFTAG_CHROMABLURRADIUS 50737 /* &chroma blur radius */
#define TIFFTAG_ANTIALIASSTRENGTH 50738 /* &relative strength of the
camera's anti-alias filter */
#define TIFFTAG_SHADOWSCALE 50739 /* &used by Adobe Camera Raw */
#define TIFFTAG_DNGPRIVATEDATA 50740 /* &manufacturer's private data */
#define TIFFTAG_MAKERNOTESAFETY 50741 /* &whether the EXIF MakerNote
tag is safe to preserve
along with the rest of the
EXIF data */
#define TIFFTAG_CALIBRATIONILLUMINANT1 50778 /* &illuminant 1 */
#define TIFFTAG_CALIBRATIONILLUMINANT2 50779 /* &illuminant 2 */
#define TIFFTAG_BESTQUALITYSCALE 50780 /* &best quality multiplier */
#define TIFFTAG_RAWDATAUNIQUEID 50781 /* &unique identifier for
the raw image data */
#define TIFFTAG_ORIGINALRAWFILENAME 50827 /* &file name of the original
raw file */
#define TIFFTAG_ORIGINALRAWFILEDATA 50828 /* &contents of the original
raw file */
#define TIFFTAG_ACTIVEAREA 50829 /* &active (non-masked) pixels
of the sensor */
#define TIFFTAG_MASKEDAREAS 50830 /* &list of coordinates
of fully masked pixels */
#define TIFFTAG_ASSHOTICCPROFILE 50831 /* &these two tags used to */
#define TIFFTAG_ASSHOTPREPROFILEMATRIX 50832 /* map cameras's color space
into ICC profile space */
#define TIFFTAG_CURRENTICCPROFILE 50833 /* & */
#define TIFFTAG_CURRENTPREPROFILEMATRIX 50834 /* & */
/* tag 65535 is an undefined tag used by Eastman Kodak */
#define TIFFTAG_DCSHUESHIFTVALUES 65535 /* hue shift correction data */
/*
* The following are ``pseudo tags'' that can be used to control
* codec-specific functionality. These tags are not written to file.
* Note that these values start at 0xffff+1 so that they'll never
* collide with Aldus-assigned tags.
*
* If you want your private pseudo tags ``registered'' (i.e. added to
* this file), please post a bug report via the tracking system at
* http://www.remotesensing.org/libtiff/bugs.html with the appropriate
* C definitions to add.
*/
#define TIFFTAG_FAXMODE 65536 /* Group 3/4 format control */
#define FAXMODE_CLASSIC 0x0000 /* default, include RTC */
#define FAXMODE_NORTC 0x0001 /* no RTC at end of data */
#define FAXMODE_NOEOL 0x0002 /* no EOL code at end of row */
#define FAXMODE_BYTEALIGN 0x0004 /* byte align row */
#define FAXMODE_WORDALIGN 0x0008 /* word align row */
#define FAXMODE_CLASSF FAXMODE_NORTC /* TIFF Class F */
#define TIFFTAG_JPEGQUALITY 65537 /* Compression quality level */
/* Note: quality level is on the IJG 0-100 scale. Default value is 75 */
#define TIFFTAG_JPEGCOLORMODE 65538 /* Auto RGB<=>YCbCr convert? */
#define JPEGCOLORMODE_RAW 0x0000 /* no conversion (default) */
#define JPEGCOLORMODE_RGB 0x0001 /* do auto conversion */
#define TIFFTAG_JPEGTABLESMODE 65539 /* What to put in JPEGTables */
#define JPEGTABLESMODE_QUANT 0x0001 /* include quantization tbls */
#define JPEGTABLESMODE_HUFF 0x0002 /* include Huffman tbls */
/* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */
#define TIFFTAG_FAXFILLFUNC 65540 /* G3/G4 fill function */
#define TIFFTAG_PIXARLOGDATAFMT 65549 /* PixarLogCodec I/O data sz */
#define PIXARLOGDATAFMT_8BIT 0 /* regular u_char samples */
#define PIXARLOGDATAFMT_8BITABGR 1 /* ABGR-order u_chars */
#define PIXARLOGDATAFMT_11BITLOG 2 /* 11-bit log-encoded (raw) */
#define PIXARLOGDATAFMT_12BITPICIO 3 /* as per PICIO (1.0==2048) */
#define PIXARLOGDATAFMT_16BIT 4 /* signed short samples */
#define PIXARLOGDATAFMT_FLOAT 5 /* IEEE float samples */
/* 65550-65556 are allocated to Oceana Matrix <dev@oceana.com> */
#define TIFFTAG_DCSIMAGERTYPE 65550 /* imager model & filter */
#define DCSIMAGERMODEL_M3 0 /* M3 chip (1280 x 1024) */
#define DCSIMAGERMODEL_M5 1 /* M5 chip (1536 x 1024) */
#define DCSIMAGERMODEL_M6 2 /* M6 chip (3072 x 2048) */
#define DCSIMAGERFILTER_IR 0 /* infrared filter */
#define DCSIMAGERFILTER_MONO 1 /* monochrome filter */
#define DCSIMAGERFILTER_CFA 2 /* color filter array */
#define DCSIMAGERFILTER_OTHER 3 /* other filter */
#define TIFFTAG_DCSINTERPMODE 65551 /* interpolation mode */
#define DCSINTERPMODE_NORMAL 0x0 /* whole image, default */
#define DCSINTERPMODE_PREVIEW 0x1 /* preview of image (384x256) */
#define TIFFTAG_DCSBALANCEARRAY 65552 /* color balance values */
#define TIFFTAG_DCSCORRECTMATRIX 65553 /* color correction values */
#define TIFFTAG_DCSGAMMA 65554 /* gamma value */
#define TIFFTAG_DCSTOESHOULDERPTS 65555 /* toe & shoulder points */
#define TIFFTAG_DCSCALIBRATIONFD 65556 /* calibration file desc */
/* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */
#define TIFFTAG_ZIPQUALITY 65557 /* compression quality level */
#define TIFFTAG_PIXARLOGQUALITY 65558 /* PixarLog uses same scale */
/* 65559 is allocated to Oceana Matrix <dev@oceana.com> */
#define TIFFTAG_DCSCLIPRECTANGLE 65559 /* area of image to acquire */
#define TIFFTAG_SGILOGDATAFMT 65560 /* SGILog user data format */
#define SGILOGDATAFMT_FLOAT 0 /* IEEE float samples */
#define SGILOGDATAFMT_16BIT 1 /* 16-bit samples */
#define SGILOGDATAFMT_RAW 2 /* uninterpreted data */
#define SGILOGDATAFMT_8BIT 3 /* 8-bit RGB monitor values */
#define TIFFTAG_SGILOGENCODE 65561 /* SGILog data encoding control*/
#define SGILOGENCODE_NODITHER 0 /* do not dither encoded values*/
#define SGILOGENCODE_RANDITHER 1 /* randomly dither encd values */
/*
* EXIF tags
*/
#define EXIFTAG_EXPOSURETIME 33434 /* Exposure time */
#define EXIFTAG_FNUMBER 33437 /* F number */
#define EXIFTAG_EXPOSUREPROGRAM 34850 /* Exposure program */
#define EXIFTAG_SPECTRALSENSITIVITY 34852 /* Spectral sensitivity */
#define EXIFTAG_ISOSPEEDRATINGS 34855 /* ISO speed rating */
#define EXIFTAG_OECF 34856 /* Optoelectric conversion
factor */
#define EXIFTAG_EXIFVERSION 36864 /* Exif version */
#define EXIFTAG_DATETIMEORIGINAL 36867 /* Date and time of original
data generation */
#define EXIFTAG_DATETIMEDIGITIZED 36868 /* Date and time of digital
data generation */
#define EXIFTAG_COMPONENTSCONFIGURATION 37121 /* Meaning of each component */
#define EXIFTAG_COMPRESSEDBITSPERPIXEL 37122 /* Image compression mode */
#define EXIFTAG_SHUTTERSPEEDVALUE 37377 /* Shutter speed */
#define EXIFTAG_APERTUREVALUE 37378 /* Aperture */
#define EXIFTAG_BRIGHTNESSVALUE 37379 /* Brightness */
#define EXIFTAG_EXPOSUREBIASVALUE 37380 /* Exposure bias */
#define EXIFTAG_MAXAPERTUREVALUE 37381 /* Maximum lens aperture */
#define EXIFTAG_SUBJECTDISTANCE 37382 /* Subject distance */
#define EXIFTAG_METERINGMODE 37383 /* Metering mode */
#define EXIFTAG_LIGHTSOURCE 37384 /* Light source */
#define EXIFTAG_FLASH 37385 /* Flash */
#define EXIFTAG_FOCALLENGTH 37386 /* Lens focal length */
#define EXIFTAG_SUBJECTAREA 37396 /* Subject area */
#define EXIFTAG_MAKERNOTE 37500 /* Manufacturer notes */
#define EXIFTAG_USERCOMMENT 37510 /* User comments */
#define EXIFTAG_SUBSECTIME 37520 /* DateTime subseconds */
#define EXIFTAG_SUBSECTIMEORIGINAL 37521 /* DateTimeOriginal subseconds */
#define EXIFTAG_SUBSECTIMEDIGITIZED 37522 /* DateTimeDigitized subseconds */
#define EXIFTAG_FLASHPIXVERSION 40960 /* Supported Flashpix version */
#define EXIFTAG_COLORSPACE 40961 /* Color space information */
#define EXIFTAG_PIXELXDIMENSION 40962 /* Valid image width */
#define EXIFTAG_PIXELYDIMENSION 40963 /* Valid image height */
#define EXIFTAG_RELATEDSOUNDFILE 40964 /* Related audio file */
#define EXIFTAG_FLASHENERGY 41483 /* Flash energy */
#define EXIFTAG_SPATIALFREQUENCYRESPONSE 41484 /* Spatial frequency response */
#define EXIFTAG_FOCALPLANEXRESOLUTION 41486 /* Focal plane X resolution */
#define EXIFTAG_FOCALPLANEYRESOLUTION 41487 /* Focal plane Y resolution */
#define EXIFTAG_FOCALPLANERESOLUTIONUNIT 41488 /* Focal plane resolution unit */
#define EXIFTAG_SUBJECTLOCATION 41492 /* Subject location */
#define EXIFTAG_EXPOSUREINDEX 41493 /* Exposure index */
#define EXIFTAG_SENSINGMETHOD 41495 /* Sensing method */
#define EXIFTAG_FILESOURCE 41728 /* File source */
#define EXIFTAG_SCENETYPE 41729 /* Scene type */
#define EXIFTAG_CFAPATTERN 41730 /* CFA pattern */
#define EXIFTAG_CUSTOMRENDERED 41985 /* Custom image processing */
#define EXIFTAG_EXPOSUREMODE 41986 /* Exposure mode */
#define EXIFTAG_WHITEBALANCE 41987 /* White balance */
#define EXIFTAG_DIGITALZOOMRATIO 41988 /* Digital zoom ratio */
#define EXIFTAG_FOCALLENGTHIN35MMFILM 41989 /* Focal length in 35 mm film */
#define EXIFTAG_SCENECAPTURETYPE 41990 /* Scene capture type */
#define EXIFTAG_GAINCONTROL 41991 /* Gain control */
#define EXIFTAG_CONTRAST 41992 /* Contrast */
#define EXIFTAG_SATURATION 41993 /* Saturation */
#define EXIFTAG_SHARPNESS 41994 /* Sharpness */
#define EXIFTAG_DEVICESETTINGDESCRIPTION 41995 /* Device settings description */
#define EXIFTAG_SUBJECTDISTANCERANGE 41996 /* Subject distance range */
#define EXIFTAG_GAINCONTROL 41991 /* Gain control */
#define EXIFTAG_GAINCONTROL 41991 /* Gain control */
#define EXIFTAG_IMAGEUNIQUEID 42016 /* Unique image ID */
#endif /* _TIFF_ */
/* vim: set ts=8 sts=8 sw=8 noet: */

@ -1,101 +0,0 @@
/* libtiff/tiffconf.h. Generated by configure. */
/*
Configuration defines for installed libtiff.
This file maintained for backward compatibility. Do not use definitions
from this file in your programs.
*/
#ifndef _TIFFCONF_
#define _TIFFCONF_
/* Define to 1 if the system has the type `int16'. */
/* #undef HAVE_INT16 */
/* Define to 1 if the system has the type `int32'. */
/* #undef HAVE_INT32 */
/* Define to 1 if the system has the type `int8'. */
/* #undef HAVE_INT8 */
/* The size of a `int', as computed by sizeof. */
#define SIZEOF_INT 4
/* The size of a `long', as computed by sizeof. */
#define SIZEOF_LONG 4
/* Compatibility stuff. */
/* Define as 0 or 1 according to the floating point format suported by the
machine */
#define HAVE_IEEEFP 1
/* Set the native cpu bit order (FILLORDER_LSB2MSB or FILLORDER_MSB2LSB) */
#define HOST_FILLORDER FILLORDER_LSB2MSB
/* Native cpu byte order: 1 if big-endian (Motorola) or 0 if little-endian
(Intel) */
#define HOST_BIGENDIAN 0
/* Support CCITT Group 3 & 4 algorithms */
#define CCITT_SUPPORT 1
/* Support JPEG compression (requires IJG JPEG library) */
#define JPEG_SUPPORT 1
/* Support LogLuv high dynamic range encoding */
#define LOGLUV_SUPPORT 1
/* Support LZW algorithm */
#define LZW_SUPPORT 1
/* Support NeXT 2-bit RLE algorithm */
#define NEXT_SUPPORT 1
/* Support Old JPEG compresson (read contrib/ojpeg/README first! Compilation
fails with unpatched IJG JPEG library) */
/* #undef OJPEG_SUPPORT */
/* Support Macintosh PackBits algorithm */
#define PACKBITS_SUPPORT 1
/* Support Pixar log-format algorithm (requires Zlib) */
#define PIXARLOG_SUPPORT 1
/* Support ThunderScan 4-bit RLE algorithm */
#define THUNDER_SUPPORT 1
/* Support Deflate compression */
#define ZIP_SUPPORT 1
/* Support strip chopping (whether or not to convert single-strip uncompressed
images to mutiple strips of ~8Kb to reduce memory usage) */
#define STRIPCHOP_DEFAULT TIFF_STRIPCHOP
/* Enable SubIFD tag (330) support */
#define SUBIFD_SUPPORT 1
/* Treat extra sample as alpha (default enabled). The RGBA interface will
treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA. Many
packages produce RGBA files but don't mark the alpha properly. */
#define DEFAULT_EXTRASAMPLE_AS_ALPHA 1
/* Pick up YCbCr subsampling info from the JPEG data stream to support files
lacking the tag (default enabled). */
#define CHECK_JPEG_YCBCR_SUBSAMPLING 1
/* Support MS MDI magic number files as TIFF */
#define MDI_SUPPORT 1
/*
* Feature support definitions.
* XXX: These macros are obsoleted. Don't use them in your apps!
* Macros stays here for backward compatibility and should be always defined.
*/
#define COLORIMETRY_SUPPORT
#define YCBCR_SUPPORT
#define CMYK_SUPPORT
#define ICC_SUPPORT
#define PHOTOSHOP_SUPPORT
#define IPTC_SUPPORT
#endif /* _TIFFCONF_ */

@ -1,549 +0,0 @@
/* $Id: tiffio.h,v 1.50 2006/03/21 16:37:51 dron Exp $ */
/*
* Copyright (c) 1988-1997 Sam Leffler
* Copyright (c) 1991-1997 Silicon Graphics, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation for any purpose is hereby granted without fee, provided
* that (i) the above copyright notices and this permission notice appear in
* all copies of the software and related documentation, and (ii) the names of
* Sam Leffler and Silicon Graphics may not be used in any advertising or
* publicity relating to the software without the specific, prior written
* permission of Sam Leffler and Silicon Graphics.
*
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
*
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*/
#ifndef _TIFFIO_
#define _TIFFIO_
#ifndef __GNUC__
# define __DLL_IMPORT__ __declspec(dllimport)
# define __DLL_EXPORT__ __declspec(dllexport)
#else
# define __DLL_IMPORT__ __attribute__((dllimport)) extern
# define __DLL_EXPORT__ __attribute__((dllexport)) extern
#endif
#if (defined __WIN32__) || (defined _WIN32)
# ifdef BUILD_LIBTIFF_DLL
# define LIBTIFF_DLL_IMPEXP __DLL_EXPORT__
# elif defined(LIBTIFF_STATIC)
# define LIBTIFF_DLL_IMPEXP
# elif defined (USE_LIBTIFF_DLL)
# define LIBTIFF_DLL_IMPEXP __DLL_IMPORT__
# elif defined (USE_LIBTIFF_STATIC)
# define LIBTIFF_DLL_IMPEXP
# else /* assume USE_LIBTIFF_DLL */
# define LIBTIFF_DLL_IMPEXP __DLL_IMPORT__
# endif
#else /* __WIN32__ */
# define LIBTIFF_DLL_IMPEXP
#endif
/*
* TIFF I/O Library Definitions.
*/
#include "tiff.h"
#include "tiffvers.h"
/*
* TIFF is defined as an incomplete type to hide the
* library's internal data structures from clients.
*/
typedef struct tiff TIFF;
/*
* The following typedefs define the intrinsic size of
* data types used in the *exported* interfaces. These
* definitions depend on the proper definition of types
* in tiff.h. Note also that the varargs interface used
* to pass tag types and values uses the types defined in
* tiff.h directly.
*
* NB: ttag_t is unsigned int and not unsigned short because
* ANSI C requires that the type before the ellipsis be a
* promoted type (i.e. one of int, unsigned int, pointer,
* or double) and because we defined pseudo-tags that are
* outside the range of legal Aldus-assigned tags.
* NB: tsize_t is int32 and not uint32 because some functions
* return -1.
* NB: toff_t is not off_t for many reasons; TIFFs max out at
* 32-bit file offsets being the most important, and to ensure
* that it is unsigned, rather than signed.
*/
typedef uint32 ttag_t; /* directory tag */
typedef uint16 tdir_t; /* directory index */
typedef uint16 tsample_t; /* sample number */
typedef uint32 tstrip_t; /* strip number */
typedef uint32 ttile_t; /* tile number */
typedef int32 tsize_t; /* i/o size in bytes */
typedef void* tdata_t; /* image data ref */
typedef uint32 toff_t; /* file offset */
#if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32))
#define __WIN32__
#endif
/*
* On windows you should define USE_WIN32_FILEIO if you are using tif_win32.c
* or AVOID_WIN32_FILEIO if you are using something else (like tif_unix.c).
*
* By default tif_unix.c is assumed.
*/
#if defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows)
# define BINMODE "b"
# if !defined(__CYGWIN) && !defined(AVOID_WIN32_FILEIO) && !defined(USE_WIN32_FILEIO)
# define AVOID_WIN32_FILEIO
# endif
# include <fcntl.h>
# include <io.h>
# ifdef SET_BINARY
# undef SET_BINARY
# endif /* SET_BINARY */
# define SET_BINARY(f) do {if (!_isatty(f)) _setmode(f,_O_BINARY);} while (0)
#else /* Windows */
# define BINMODE
# define SET_BINARY(f) (void)0
#endif /* Windows */
#if defined(USE_WIN32_FILEIO)
# define VC_EXTRALEAN
# include <windows.h>
# ifdef __WIN32__
DECLARE_HANDLE(thandle_t); /* Win32 file handle */
# else
typedef HFILE thandle_t; /* client data handle */
# endif /* __WIN32__ */
#else
typedef void* thandle_t; /* client data handle */
#endif /* USE_WIN32_FILEIO */
#ifndef NULL
# define NULL (void *)0
#endif
/*
* Flags to pass to TIFFPrintDirectory to control
* printing of data structures that are potentially
* very large. Bit-or these flags to enable printing
* multiple items.
*/
#define TIFFPRINT_NONE 0x0 /* no extra info */
#define TIFFPRINT_STRIPS 0x1 /* strips/tiles info */
#define TIFFPRINT_CURVES 0x2 /* color/gray response curves */
#define TIFFPRINT_COLORMAP 0x4 /* colormap */
#define TIFFPRINT_JPEGQTABLES 0x100 /* JPEG Q matrices */
#define TIFFPRINT_JPEGACTABLES 0x200 /* JPEG AC tables */
#define TIFFPRINT_JPEGDCTABLES 0x200 /* JPEG DC tables */
/*
* Colour conversion stuff
*/
/* reference white */
#define D65_X0 (95.0470F)
#define D65_Y0 (100.0F)
#define D65_Z0 (108.8827F)
#define D50_X0 (96.4250F)
#define D50_Y0 (100.0F)
#define D50_Z0 (82.4680F)
/* Structure for holding information about a display device. */
typedef unsigned char TIFFRGBValue; /* 8-bit samples */
typedef struct {
float d_mat[3][3]; /* XYZ -> luminance matrix */
float d_YCR; /* Light o/p for reference white */
float d_YCG;
float d_YCB;
uint32 d_Vrwr; /* Pixel values for ref. white */
uint32 d_Vrwg;
uint32 d_Vrwb;
float d_Y0R; /* Residual light for black pixel */
float d_Y0G;
float d_Y0B;
float d_gammaR; /* Gamma values for the three guns */
float d_gammaG;
float d_gammaB;
} TIFFDisplay;
typedef struct { /* YCbCr->RGB support */
TIFFRGBValue* clamptab; /* range clamping table */
int* Cr_r_tab;
int* Cb_b_tab;
int32* Cr_g_tab;
int32* Cb_g_tab;
int32* Y_tab;
} TIFFYCbCrToRGB;
typedef struct { /* CIE Lab 1976->RGB support */
int range; /* Size of conversion table */
#define CIELABTORGB_TABLE_RANGE 1500
float rstep, gstep, bstep;
float X0, Y0, Z0; /* Reference white point */
TIFFDisplay display;
float Yr2r[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yr to r */
float Yg2g[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yg to g */
float Yb2b[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yb to b */
} TIFFCIELabToRGB;
/*
* RGBA-style image support.
*/
typedef struct _TIFFRGBAImage TIFFRGBAImage;
/*
* The image reading and conversion routines invoke
* ``put routines'' to copy/image/whatever tiles of
* raw image data. A default set of routines are
* provided to convert/copy raw image data to 8-bit
* packed ABGR format rasters. Applications can supply
* alternate routines that unpack the data into a
* different format or, for example, unpack the data
* and draw the unpacked raster on the display.
*/
typedef void (*tileContigRoutine)
(TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32,
unsigned char*);
typedef void (*tileSeparateRoutine)
(TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32,
unsigned char*, unsigned char*, unsigned char*, unsigned char*);
/*
* RGBA-reader state.
*/
struct _TIFFRGBAImage {
TIFF* tif; /* image handle */
int stoponerr; /* stop on read error */
int isContig; /* data is packed/separate */
int alpha; /* type of alpha data present */
uint32 width; /* image width */
uint32 height; /* image height */
uint16 bitspersample; /* image bits/sample */
uint16 samplesperpixel; /* image samples/pixel */
uint16 orientation; /* image orientation */
uint16 req_orientation; /* requested orientation */
uint16 photometric; /* image photometric interp */
uint16* redcmap; /* colormap pallete */
uint16* greencmap;
uint16* bluecmap;
/* get image data routine */
int (*get)(TIFFRGBAImage*, uint32*, uint32, uint32);
union {
void (*any)(TIFFRGBAImage*);
tileContigRoutine contig;
tileSeparateRoutine separate;
} put; /* put decoded strip/tile */
TIFFRGBValue* Map; /* sample mapping array */
uint32** BWmap; /* black&white map */
uint32** PALmap; /* palette image map */
TIFFYCbCrToRGB* ycbcr; /* YCbCr conversion state */
TIFFCIELabToRGB* cielab; /* CIE L*a*b conversion state */
int row_offset;
int col_offset;
};
/*
* Macros for extracting components from the
* packed ABGR form returned by TIFFReadRGBAImage.
*/
#define TIFFGetR(abgr) ((abgr) & 0xff)
#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff)
#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff)
#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff)
/*
* A CODEC is a software package that implements decoding,
* encoding, or decoding+encoding of a compression algorithm.
* The library provides a collection of builtin codecs.
* More codecs may be registered through calls to the library
* and/or the builtin implementations may be overridden.
*/
typedef int (*TIFFInitMethod)(TIFF*, int);
typedef struct {
char* name;
uint16 scheme;
TIFFInitMethod init;
} TIFFCodec;
#include <stdio.h>
#include <stdarg.h>
/* share internal LogLuv conversion routines? */
#ifndef LOGLUV_PUBLIC
#define LOGLUV_PUBLIC 1
#endif
#if defined(c_plusplus) || defined(__cplusplus)
extern "C" {
#endif
typedef void (*TIFFErrorHandler)(const char*, const char*, va_list);
typedef void (*TIFFErrorHandlerExt)(thandle_t, const char*, const char*, va_list);
typedef tsize_t (*TIFFReadWriteProc)(thandle_t, tdata_t, tsize_t);
typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int);
typedef int (*TIFFCloseProc)(thandle_t);
typedef toff_t (*TIFFSizeProc)(thandle_t);
typedef int (*TIFFMapFileProc)(thandle_t, tdata_t*, toff_t*);
typedef void (*TIFFUnmapFileProc)(thandle_t, tdata_t, toff_t);
typedef void (*TIFFExtendProc)(TIFF*);
LIBTIFF_DLL_IMPEXP const char* TIFFGetVersion(void);
LIBTIFF_DLL_IMPEXP const TIFFCodec* TIFFFindCODEC(uint16);
LIBTIFF_DLL_IMPEXP TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod);
LIBTIFF_DLL_IMPEXP void TIFFUnRegisterCODEC(TIFFCodec*);
LIBTIFF_DLL_IMPEXP int TIFFIsCODECConfigured(uint16);
LIBTIFF_DLL_IMPEXP TIFFCodec* TIFFGetConfiguredCODECs(void);
/*
* Auxiliary functions.
*/
LIBTIFF_DLL_IMPEXP tdata_t _TIFFmalloc(tsize_t);
LIBTIFF_DLL_IMPEXP tdata_t _TIFFrealloc(tdata_t, tsize_t);
LIBTIFF_DLL_IMPEXP void _TIFFmemset(tdata_t, int, tsize_t);
LIBTIFF_DLL_IMPEXP void _TIFFmemcpy(tdata_t, const tdata_t, tsize_t);
LIBTIFF_DLL_IMPEXP int _TIFFmemcmp(const tdata_t, const tdata_t, tsize_t);
LIBTIFF_DLL_IMPEXP void _TIFFfree(tdata_t);
/*
** Stuff, related to tag handling and creating custom tags.
*/
LIBTIFF_DLL_IMPEXP int TIFFGetTagListCount( TIFF * );
LIBTIFF_DLL_IMPEXP ttag_t TIFFGetTagListEntry( TIFF *, int tag_index );
#define TIFF_ANY TIFF_NOTYPE /* for field descriptor searching */
#define TIFF_VARIABLE -1 /* marker for variable length tags */
#define TIFF_SPP -2 /* marker for SamplesPerPixel tags */
#define TIFF_VARIABLE2 -3 /* marker for uint32 var-length tags */
#define FIELD_CUSTOM 65
typedef struct {
ttag_t field_tag; /* field's tag */
short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */
short field_writecount; /* write count/TIFF_VARIABLE */
TIFFDataType field_type; /* type of associated data */
unsigned short field_bit; /* bit in fieldsset bit vector */
unsigned char field_oktochange; /* if true, can change while writing */
unsigned char field_passcount; /* if true, pass dir count on set */
char *field_name; /* ASCII name */
} TIFFFieldInfo;
typedef struct _TIFFTagValue {
const TIFFFieldInfo *info;
int count;
void *value;
} TIFFTagValue;
LIBTIFF_DLL_IMPEXP void TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], int);
LIBTIFF_DLL_IMPEXP const TIFFFieldInfo* TIFFFindFieldInfo(TIFF*, ttag_t, TIFFDataType);
LIBTIFF_DLL_IMPEXP const TIFFFieldInfo* TIFFFindFieldInfoByName(TIFF* , const char *,
TIFFDataType);
LIBTIFF_DLL_IMPEXP const TIFFFieldInfo* TIFFFieldWithTag(TIFF*, ttag_t);
LIBTIFF_DLL_IMPEXP const TIFFFieldInfo* TIFFFieldWithName(TIFF*, const char *);
typedef int (*TIFFVSetMethod)(TIFF*, ttag_t, va_list);
typedef int (*TIFFVGetMethod)(TIFF*, ttag_t, va_list);
typedef void (*TIFFPrintMethod)(TIFF*, FILE*, long);
typedef struct {
TIFFVSetMethod vsetfield; /* tag set routine */
TIFFVGetMethod vgetfield; /* tag get routine */
TIFFPrintMethod printdir; /* directory print routine */
} TIFFTagMethods;
LIBTIFF_DLL_IMPEXP TIFFTagMethods *TIFFAccessTagMethods( TIFF * );
LIBTIFF_DLL_IMPEXP void *TIFFGetClientInfo( TIFF *, const char * );
LIBTIFF_DLL_IMPEXP void TIFFSetClientInfo( TIFF *, void *, const char * );
LIBTIFF_DLL_IMPEXP void TIFFCleanup(TIFF*);
LIBTIFF_DLL_IMPEXP void TIFFClose(TIFF*);
LIBTIFF_DLL_IMPEXP int TIFFFlush(TIFF*);
LIBTIFF_DLL_IMPEXP int TIFFFlushData(TIFF*);
LIBTIFF_DLL_IMPEXP int TIFFGetField(TIFF*, ttag_t, ...);
LIBTIFF_DLL_IMPEXP int TIFFVGetField(TIFF*, ttag_t, va_list);
LIBTIFF_DLL_IMPEXP int TIFFGetFieldDefaulted(TIFF*, ttag_t, ...);
LIBTIFF_DLL_IMPEXP int TIFFVGetFieldDefaulted(TIFF*, ttag_t, va_list);
LIBTIFF_DLL_IMPEXP int TIFFReadDirectory(TIFF*);
LIBTIFF_DLL_IMPEXP int TIFFReadCustomDirectory(TIFF*, toff_t, const TIFFFieldInfo[],
size_t);
LIBTIFF_DLL_IMPEXP int TIFFReadEXIFDirectory(TIFF*, toff_t);
LIBTIFF_DLL_IMPEXP tsize_t TIFFScanlineSize(TIFF*);
LIBTIFF_DLL_IMPEXP tsize_t TIFFRasterScanlineSize(TIFF*);
LIBTIFF_DLL_IMPEXP tsize_t TIFFStripSize(TIFF*);
LIBTIFF_DLL_IMPEXP tsize_t TIFFRawStripSize(TIFF*, tstrip_t);
LIBTIFF_DLL_IMPEXP tsize_t TIFFVStripSize(TIFF*, uint32);
LIBTIFF_DLL_IMPEXP tsize_t TIFFTileRowSize(TIFF*);
LIBTIFF_DLL_IMPEXP tsize_t TIFFTileSize(TIFF*);
LIBTIFF_DLL_IMPEXP tsize_t TIFFVTileSize(TIFF*, uint32);
LIBTIFF_DLL_IMPEXP uint32 TIFFDefaultStripSize(TIFF*, uint32);
LIBTIFF_DLL_IMPEXP void TIFFDefaultTileSize(TIFF*, uint32*, uint32*);
LIBTIFF_DLL_IMPEXP int TIFFFileno(TIFF*);
LIBTIFF_DLL_IMPEXP int TIFFSetFileno(TIFF*, int);
LIBTIFF_DLL_IMPEXP thandle_t TIFFClientdata(TIFF*);
LIBTIFF_DLL_IMPEXP thandle_t TIFFSetClientdata(TIFF*, thandle_t);
LIBTIFF_DLL_IMPEXP int TIFFGetMode(TIFF*);
LIBTIFF_DLL_IMPEXP int TIFFSetMode(TIFF*, int);
LIBTIFF_DLL_IMPEXP int TIFFIsTiled(TIFF*);
LIBTIFF_DLL_IMPEXP int TIFFIsByteSwapped(TIFF*);
LIBTIFF_DLL_IMPEXP int TIFFIsUpSampled(TIFF*);
LIBTIFF_DLL_IMPEXP int TIFFIsMSB2LSB(TIFF*);
LIBTIFF_DLL_IMPEXP int TIFFIsBigEndian(TIFF*);
LIBTIFF_DLL_IMPEXP TIFFReadWriteProc TIFFGetReadProc(TIFF*);
LIBTIFF_DLL_IMPEXP TIFFReadWriteProc TIFFGetWriteProc(TIFF*);
LIBTIFF_DLL_IMPEXP TIFFSeekProc TIFFGetSeekProc(TIFF*);
LIBTIFF_DLL_IMPEXP TIFFCloseProc TIFFGetCloseProc(TIFF*);
LIBTIFF_DLL_IMPEXP TIFFSizeProc TIFFGetSizeProc(TIFF*);
LIBTIFF_DLL_IMPEXP TIFFMapFileProc TIFFGetMapFileProc(TIFF*);
LIBTIFF_DLL_IMPEXP TIFFUnmapFileProc TIFFGetUnmapFileProc(TIFF*);
LIBTIFF_DLL_IMPEXP uint32 TIFFCurrentRow(TIFF*);
LIBTIFF_DLL_IMPEXP tdir_t TIFFCurrentDirectory(TIFF*);
LIBTIFF_DLL_IMPEXP tdir_t TIFFNumberOfDirectories(TIFF*);
LIBTIFF_DLL_IMPEXP uint32 TIFFCurrentDirOffset(TIFF*);
LIBTIFF_DLL_IMPEXP tstrip_t TIFFCurrentStrip(TIFF*);
LIBTIFF_DLL_IMPEXP ttile_t TIFFCurrentTile(TIFF*);
LIBTIFF_DLL_IMPEXP int TIFFReadBufferSetup(TIFF*, tdata_t, tsize_t);
LIBTIFF_DLL_IMPEXP int TIFFWriteBufferSetup(TIFF*, tdata_t, tsize_t);
LIBTIFF_DLL_IMPEXP int TIFFSetupStrips(TIFF *);
LIBTIFF_DLL_IMPEXP int TIFFWriteCheck(TIFF*, int, const char *);
LIBTIFF_DLL_IMPEXP void TIFFFreeDirectory(TIFF*);
LIBTIFF_DLL_IMPEXP int TIFFCreateDirectory(TIFF*);
LIBTIFF_DLL_IMPEXP int TIFFLastDirectory(TIFF*);
LIBTIFF_DLL_IMPEXP int TIFFSetDirectory(TIFF*, tdir_t);
LIBTIFF_DLL_IMPEXP int TIFFSetSubDirectory(TIFF*, uint32);
LIBTIFF_DLL_IMPEXP int TIFFUnlinkDirectory(TIFF*, tdir_t);
LIBTIFF_DLL_IMPEXP int TIFFSetField(TIFF*, ttag_t, ...);
LIBTIFF_DLL_IMPEXP int TIFFVSetField(TIFF*, ttag_t, va_list);
LIBTIFF_DLL_IMPEXP int TIFFWriteDirectory(TIFF *);
LIBTIFF_DLL_IMPEXP int TIFFCheckpointDirectory(TIFF *);
LIBTIFF_DLL_IMPEXP int TIFFRewriteDirectory(TIFF *);
LIBTIFF_DLL_IMPEXP int TIFFReassignTagToIgnore(enum TIFFIgnoreSense, int);
#if defined(c_plusplus) || defined(__cplusplus)
LIBTIFF_DLL_IMPEXP void TIFFPrintDirectory(TIFF*, FILE*, long = 0);
LIBTIFF_DLL_IMPEXP int TIFFReadScanline(TIFF*, tdata_t, uint32, tsample_t = 0);
LIBTIFF_DLL_IMPEXP int TIFFWriteScanline(TIFF*, tdata_t, uint32, tsample_t = 0);
LIBTIFF_DLL_IMPEXP int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0);
LIBTIFF_DLL_IMPEXP int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*,
int = ORIENTATION_BOTLEFT, int = 0);
#else
LIBTIFF_DLL_IMPEXP void TIFFPrintDirectory(TIFF*, FILE*, long);
LIBTIFF_DLL_IMPEXP int TIFFReadScanline(TIFF*, tdata_t, uint32, tsample_t);
LIBTIFF_DLL_IMPEXP int TIFFWriteScanline(TIFF*, tdata_t, uint32, tsample_t);
LIBTIFF_DLL_IMPEXP int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int);
LIBTIFF_DLL_IMPEXP int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, int, int);
#endif
LIBTIFF_DLL_IMPEXP int TIFFReadRGBAStrip(TIFF*, tstrip_t, uint32 * );
LIBTIFF_DLL_IMPEXP int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * );
LIBTIFF_DLL_IMPEXP int TIFFRGBAImageOK(TIFF*, char [1024]);
LIBTIFF_DLL_IMPEXP int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]);
LIBTIFF_DLL_IMPEXP int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32);
LIBTIFF_DLL_IMPEXP void TIFFRGBAImageEnd(TIFFRGBAImage*);
LIBTIFF_DLL_IMPEXP TIFF* TIFFOpen(const char*, const char*);
# ifdef __WIN32__
LIBTIFF_DLL_IMPEXP TIFF* TIFFOpenW(const wchar_t*, const char*);
# endif /* __WIN32__ */
LIBTIFF_DLL_IMPEXP TIFF* TIFFFdOpen(int, const char*, const char*);
LIBTIFF_DLL_IMPEXP TIFF* TIFFClientOpen(const char*, const char*,
thandle_t,
TIFFReadWriteProc, TIFFReadWriteProc,
TIFFSeekProc, TIFFCloseProc,
TIFFSizeProc,
TIFFMapFileProc, TIFFUnmapFileProc);
LIBTIFF_DLL_IMPEXP const char* TIFFFileName(TIFF*);
LIBTIFF_DLL_IMPEXP const char* TIFFSetFileName(TIFF*, const char *);
LIBTIFF_DLL_IMPEXP void TIFFError(const char*, const char*, ...);
LIBTIFF_DLL_IMPEXP void TIFFErrorExt(thandle_t, const char*, const char*, ...);
LIBTIFF_DLL_IMPEXP void TIFFWarning(const char*, const char*, ...);
LIBTIFF_DLL_IMPEXP void TIFFWarningExt(thandle_t, const char*, const char*, ...);
LIBTIFF_DLL_IMPEXP TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler);
LIBTIFF_DLL_IMPEXP TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt);
LIBTIFF_DLL_IMPEXP TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler);
LIBTIFF_DLL_IMPEXP TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt);
LIBTIFF_DLL_IMPEXP TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc);
LIBTIFF_DLL_IMPEXP ttile_t TIFFComputeTile(TIFF*, uint32, uint32, uint32, tsample_t);
LIBTIFF_DLL_IMPEXP int TIFFCheckTile(TIFF*, uint32, uint32, uint32, tsample_t);
LIBTIFF_DLL_IMPEXP ttile_t TIFFNumberOfTiles(TIFF*);
LIBTIFF_DLL_IMPEXP tsize_t TIFFReadTile(TIFF*,
tdata_t, uint32, uint32, uint32, tsample_t);
LIBTIFF_DLL_IMPEXP tsize_t TIFFWriteTile(TIFF*,
tdata_t, uint32, uint32, uint32, tsample_t);
LIBTIFF_DLL_IMPEXP tstrip_t TIFFComputeStrip(TIFF*, uint32, tsample_t);
LIBTIFF_DLL_IMPEXP tstrip_t TIFFNumberOfStrips(TIFF*);
LIBTIFF_DLL_IMPEXP tsize_t TIFFReadEncodedStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
LIBTIFF_DLL_IMPEXP tsize_t TIFFReadRawStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
LIBTIFF_DLL_IMPEXP tsize_t TIFFReadEncodedTile(TIFF*, ttile_t, tdata_t, tsize_t);
LIBTIFF_DLL_IMPEXP tsize_t TIFFReadRawTile(TIFF*, ttile_t, tdata_t, tsize_t);
LIBTIFF_DLL_IMPEXP tsize_t TIFFWriteEncodedStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
LIBTIFF_DLL_IMPEXP tsize_t TIFFWriteRawStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
LIBTIFF_DLL_IMPEXP tsize_t TIFFWriteEncodedTile(TIFF*, ttile_t, tdata_t, tsize_t);
LIBTIFF_DLL_IMPEXP tsize_t TIFFWriteRawTile(TIFF*, ttile_t, tdata_t, tsize_t);
LIBTIFF_DLL_IMPEXP int TIFFDataWidth(TIFFDataType); /* table of tag datatype widths */
LIBTIFF_DLL_IMPEXP void TIFFSetWriteOffset(TIFF*, toff_t);
LIBTIFF_DLL_IMPEXP void TIFFSwabShort(uint16*);
LIBTIFF_DLL_IMPEXP void TIFFSwabLong(uint32*);
LIBTIFF_DLL_IMPEXP void TIFFSwabDouble(double*);
LIBTIFF_DLL_IMPEXP void TIFFSwabArrayOfShort(uint16*, unsigned long);
LIBTIFF_DLL_IMPEXP void TIFFSwabArrayOfTriples(uint8*, unsigned long);
LIBTIFF_DLL_IMPEXP void TIFFSwabArrayOfLong(uint32*, unsigned long);
LIBTIFF_DLL_IMPEXP void TIFFSwabArrayOfDouble(double*, unsigned long);
LIBTIFF_DLL_IMPEXP void TIFFReverseBits(unsigned char *, unsigned long);
LIBTIFF_DLL_IMPEXP const unsigned char* TIFFGetBitRevTable(int);
#ifdef LOGLUV_PUBLIC
#define U_NEU 0.210526316
#define V_NEU 0.473684211
#define UVSCALE 410.
LIBTIFF_DLL_IMPEXP double LogL16toY(int);
LIBTIFF_DLL_IMPEXP double LogL10toY(int);
LIBTIFF_DLL_IMPEXP void XYZtoRGB24(float*, uint8*);
LIBTIFF_DLL_IMPEXP int uv_decode(double*, double*, int);
LIBTIFF_DLL_IMPEXP void LogLuv24toXYZ(uint32, float*);
LIBTIFF_DLL_IMPEXP void LogLuv32toXYZ(uint32, float*);
#if defined(c_plusplus) || defined(__cplusplus)
LIBTIFF_DLL_IMPEXP int LogL16fromY(double, int = SGILOGENCODE_NODITHER);
LIBTIFF_DLL_IMPEXP int LogL10fromY(double, int = SGILOGENCODE_NODITHER);
LIBTIFF_DLL_IMPEXP int uv_encode(double, double, int = SGILOGENCODE_NODITHER);
LIBTIFF_DLL_IMPEXP uint32 LogLuv24fromXYZ(float*, int = SGILOGENCODE_NODITHER);
LIBTIFF_DLL_IMPEXP uint32 LogLuv32fromXYZ(float*, int = SGILOGENCODE_NODITHER);
#else
LIBTIFF_DLL_IMPEXP int LogL16fromY(double, int);
LIBTIFF_DLL_IMPEXP int LogL10fromY(double, int);
LIBTIFF_DLL_IMPEXP int uv_encode(double, double, int);
LIBTIFF_DLL_IMPEXP uint32 LogLuv24fromXYZ(float*, int);
LIBTIFF_DLL_IMPEXP uint32 LogLuv32fromXYZ(float*, int);
#endif
#endif /* LOGLUV_PUBLIC */
LIBTIFF_DLL_IMPEXP int TIFFCIELabToRGBInit(TIFFCIELabToRGB*, TIFFDisplay *, float*);
LIBTIFF_DLL_IMPEXP void TIFFCIELabToXYZ(TIFFCIELabToRGB *, uint32, int32, int32,
float *, float *, float *);
LIBTIFF_DLL_IMPEXP void TIFFXYZToRGB(TIFFCIELabToRGB *, float, float, float,
uint32 *, uint32 *, uint32 *);
LIBTIFF_DLL_IMPEXP int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB*, float*, float*);
LIBTIFF_DLL_IMPEXP void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *, uint32, int32, int32,
uint32 *, uint32 *, uint32 *);
#if defined(c_plusplus) || defined(__cplusplus)
}
#endif
#endif /* _TIFFIO_ */
/* vim: set ts=8 sts=8 sw=8 noet: */

@ -1,9 +0,0 @@
#define TIFFLIB_VERSION_STR "LIBTIFF, Version 3.8.2\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc."
/*
* This define can be used in code that requires
* compilation-related definitions specific to a
* version or versions of the library. Runtime
* version checking should be done based on the
* string returned by TIFFGetVersion.
*/
#define TIFFLIB_VERSION 20060323

@ -1,332 +0,0 @@
/* zconf.h -- configuration of the zlib compression library
* Copyright (C) 1995-2005 Jean-loup Gailly.
* For conditions of distribution and use, see copyright notice in zlib.h
*/
/* @(#) $Id$ */
#ifndef ZCONF_H
#define ZCONF_H
/*
* If you *really* need a unique prefix for all types and library functions,
* compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
*/
#ifdef Z_PREFIX
# define deflateInit_ z_deflateInit_
# define deflate z_deflate
# define deflateEnd z_deflateEnd
# define inflateInit_ z_inflateInit_
# define inflate z_inflate
# define inflateEnd z_inflateEnd
# define deflateInit2_ z_deflateInit2_
# define deflateSetDictionary z_deflateSetDictionary
# define deflateCopy z_deflateCopy
# define deflateReset z_deflateReset
# define deflateParams z_deflateParams
# define deflateBound z_deflateBound
# define deflatePrime z_deflatePrime
# define inflateInit2_ z_inflateInit2_
# define inflateSetDictionary z_inflateSetDictionary
# define inflateSync z_inflateSync
# define inflateSyncPoint z_inflateSyncPoint
# define inflateCopy z_inflateCopy
# define inflateReset z_inflateReset
# define inflateBack z_inflateBack
# define inflateBackEnd z_inflateBackEnd
# define compress z_compress
# define compress2 z_compress2
# define compressBound z_compressBound
# define uncompress z_uncompress
# define adler32 z_adler32
# define crc32 z_crc32
# define get_crc_table z_get_crc_table
# define zError z_zError
# define alloc_func z_alloc_func
# define free_func z_free_func
# define in_func z_in_func
# define out_func z_out_func
# define Byte z_Byte
# define uInt z_uInt
# define uLong z_uLong
# define Bytef z_Bytef
# define charf z_charf
# define intf z_intf
# define uIntf z_uIntf
# define uLongf z_uLongf
# define voidpf z_voidpf
# define voidp z_voidp
#endif
#if defined(__MSDOS__) && !defined(MSDOS)
# define MSDOS
#endif
#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
# define OS2
#endif
#if defined(_WINDOWS) && !defined(WINDOWS)
# define WINDOWS
#endif
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
# ifndef WIN32
# define WIN32
# endif
#endif
#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
# ifndef SYS16BIT
# define SYS16BIT
# endif
# endif
#endif
/*
* Compile with -DMAXSEG_64K if the alloc function cannot allocate more
* than 64k bytes at a time (needed on systems with 16-bit int).
*/
#ifdef SYS16BIT
# define MAXSEG_64K
#endif
#ifdef MSDOS
# define UNALIGNED_OK
#endif
#ifdef __STDC_VERSION__
# ifndef STDC
# define STDC
# endif
# if __STDC_VERSION__ >= 199901L
# ifndef STDC99
# define STDC99
# endif
# endif
#endif
#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
# define STDC
#endif
#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
# define STDC
#endif
#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
# define STDC
#endif
#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
# define STDC
#endif
#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */
# define STDC
#endif
#ifndef STDC
# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
# define const /* note: need a more gentle solution here */
# endif
#endif
/* Some Mac compilers merge all .h files incorrectly: */
#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
# define NO_DUMMY_DECL
#endif
/* Maximum value for memLevel in deflateInit2 */
#ifndef MAX_MEM_LEVEL
# ifdef MAXSEG_64K
# define MAX_MEM_LEVEL 8
# else
# define MAX_MEM_LEVEL 9
# endif
#endif
/* Maximum value for windowBits in deflateInit2 and inflateInit2.
* WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
* created by gzip. (Files created by minigzip can still be extracted by
* gzip.)
*/
#ifndef MAX_WBITS
# define MAX_WBITS 15 /* 32K LZ77 window */
#endif
/* The memory requirements for deflate are (in bytes):
(1 << (windowBits+2)) + (1 << (memLevel+9))
that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
plus a few kilobytes for small objects. For example, if you want to reduce
the default memory requirements from 256K to 128K, compile with
make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
Of course this will generally degrade compression (there's no free lunch).
The memory requirements for inflate are (in bytes) 1 << windowBits
that is, 32K for windowBits=15 (default value) plus a few kilobytes
for small objects.
*/
/* Type declarations */
#ifndef OF /* function prototypes */
# ifdef STDC
# define OF(args) args
# else
# define OF(args) ()
# endif
#endif
/* The following definitions for FAR are needed only for MSDOS mixed
* model programming (small or medium model with some far allocations).
* This was tested only with MSC; for other MSDOS compilers you may have
* to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
* just define FAR to be empty.
*/
#ifdef SYS16BIT
# if defined(M_I86SM) || defined(M_I86MM)
/* MSC small or medium model */
# define SMALL_MEDIUM
# ifdef _MSC_VER
# define FAR _far
# else
# define FAR far
# endif
# endif
# if (defined(__SMALL__) || defined(__MEDIUM__))
/* Turbo C small or medium model */
# define SMALL_MEDIUM
# ifdef __BORLANDC__
# define FAR _far
# else
# define FAR far
# endif
# endif
#endif
#if defined(WINDOWS) || defined(WIN32)
/* If building or using zlib as a DLL, define ZLIB_DLL.
* This is not mandatory, but it offers a little performance increase.
*/
# ifdef ZLIB_DLL
# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
# ifdef ZLIB_INTERNAL
# define ZEXTERN extern __declspec(dllexport)
# else
# define ZEXTERN extern __declspec(dllimport)
# endif
# endif
# endif /* ZLIB_DLL */
/* If building or using zlib with the WINAPI/WINAPIV calling convention,
* define ZLIB_WINAPI.
* Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
*/
# ifdef ZLIB_WINAPI
# ifdef FAR
# undef FAR
# endif
# include <windows.h>
/* No need for _export, use ZLIB.DEF instead. */
/* For complete Windows compatibility, use WINAPI, not __stdcall. */
# define ZEXPORT WINAPI
# ifdef WIN32
# define ZEXPORTVA WINAPIV
# else
# define ZEXPORTVA FAR CDECL
# endif
# endif
#endif
#if defined (__BEOS__)
# ifdef ZLIB_DLL
# ifdef ZLIB_INTERNAL
# define ZEXPORT __declspec(dllexport)
# define ZEXPORTVA __declspec(dllexport)
# else
# define ZEXPORT __declspec(dllimport)
# define ZEXPORTVA __declspec(dllimport)
# endif
# endif
#endif
#ifndef ZEXTERN
# define ZEXTERN extern
#endif
#ifndef ZEXPORT
# define ZEXPORT
#endif
#ifndef ZEXPORTVA
# define ZEXPORTVA
#endif
#ifndef FAR
# define FAR
#endif
#if !defined(__MACTYPES__)
typedef unsigned char Byte; /* 8 bits */
#endif
typedef unsigned int uInt; /* 16 bits or more */
typedef unsigned long uLong; /* 32 bits or more */
#ifdef SMALL_MEDIUM
/* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
# define Bytef Byte FAR
#else
typedef Byte FAR Bytef;
#endif
typedef char FAR charf;
typedef int FAR intf;
typedef uInt FAR uIntf;
typedef uLong FAR uLongf;
#ifdef STDC
typedef void const *voidpc;
typedef void FAR *voidpf;
typedef void *voidp;
#else
typedef Byte const *voidpc;
typedef Byte FAR *voidpf;
typedef Byte *voidp;
#endif
#if 0 /* HAVE_UNISTD_H -- this line is updated by ./configure */
# include <sys/types.h> /* for off_t */
# include <unistd.h> /* for SEEK_* and off_t */
# ifdef VMS
# include <unixio.h> /* for off_t */
# endif
# define z_off_t off_t
#endif
#ifndef SEEK_SET
# define SEEK_SET 0 /* Seek from beginning of file. */
# define SEEK_CUR 1 /* Seek from current position. */
# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
#endif
#ifndef z_off_t
# define z_off_t long
#endif
#if defined(__OS400__)
# define NO_vsnprintf
#endif
#if defined(__MVS__)
# define NO_vsnprintf
# ifdef FAR
# undef FAR
# endif
#endif
/* MVS linker does not support external names larger than 8 bytes */
#if defined(__MVS__)
# pragma map(deflateInit_,"DEIN")
# pragma map(deflateInit2_,"DEIN2")
# pragma map(deflateEnd,"DEEND")
# pragma map(deflateBound,"DEBND")
# pragma map(inflateInit_,"ININ")
# pragma map(inflateInit2_,"ININ2")
# pragma map(inflateEnd,"INEND")
# pragma map(inflateSync,"INSY")
# pragma map(inflateSetDictionary,"INSEDI")
# pragma map(compressBound,"CMBND")
# pragma map(inflate_table,"INTABL")
# pragma map(inflate_fast,"INFA")
# pragma map(inflate_copyright,"INCOPY")
#endif
#endif /* ZCONF_H */

File diff suppressed because it is too large Load Diff

@ -1,103 +0,0 @@
; h:\mingw\3.3.1\bin\dlltool.exe --output-def=jpeg.def jcapimin.o jcapistd.o jctrans.o jcparam.o jdatadst.o jcinit.o jcmaster.o jcmarker.o jcmainct.o jcprepct.o jccoefct.o jccolor.o jcsample.o jchuff.o jcphuff.o jcdctmgr.o jfdctfst.o jfdctflt.o jfdctint.o jdapimin.o jdapistd.o jdtrans.o jdatasrc.o jdmaster.o jdinput.o jdmarker.o jdhuff.o jdphuff.o jdmainct.o jdcoefct.o jdpostct.o jddctmgr.o jidctfst.o jidctflt.o jidctint.o jidctred.o jdsample.o jdcolor.o jquant1.o jquant2.o jdmerge.o jcomapi.o jutils.o jerror.o jmemmgr.o jmemnobs.o jpeg-dllversion.o jpeg-dll-res.o
EXPORTS
jcopy_block_row @ 1 ;
jcopy_sample_rows @ 2 ;
jdiv_round_up @ 3 ;
jinit_1pass_quantizer @ 4 ;
jinit_2pass_quantizer @ 5 ;
jinit_c_coef_controller @ 6 ;
jinit_c_main_controller @ 7 ;
jinit_c_master_control @ 8 ;
jinit_c_prep_controller @ 9 ;
jinit_color_converter @ 10 ;
jinit_color_deconverter @ 11 ;
jinit_compress_master @ 12 ;
jinit_d_coef_controller @ 13 ;
jinit_d_main_controller @ 14 ;
jinit_d_post_controller @ 15 ;
jinit_downsampler @ 16 ;
jinit_forward_dct @ 17 ;
jinit_huff_decoder @ 18 ;
jinit_huff_encoder @ 19 ;
jinit_input_controller @ 20 ;
jinit_inverse_dct @ 21 ;
jinit_marker_reader @ 22 ;
jinit_marker_writer @ 23 ;
jinit_master_decompress @ 24 ;
jinit_memory_mgr @ 25 ;
jinit_merged_upsampler @ 26 ;
jinit_phuff_decoder @ 27 ;
jinit_phuff_encoder @ 28 ;
jinit_upsampler @ 29 ;
jpeg_CreateCompress @ 30 ;
jpeg_CreateDecompress @ 31 ;
jpeg_abort @ 32 ;
jpeg_abort_compress @ 33 ;
jpeg_abort_decompress @ 34 ;
jpeg_add_quant_table @ 35 ;
jpeg_alloc_huff_table @ 36 ;
jpeg_alloc_quant_table @ 37 ;
jpeg_calc_output_dimensions @ 38 ;
jpeg_consume_input @ 39 ;
jpeg_copy_critical_parameters @ 40 ;
jpeg_default_colorspace @ 41 ;
jpeg_destroy @ 42 ;
jpeg_destroy_compress @ 43 ;
jpeg_destroy_decompress @ 44 ;
jpeg_fdct_float @ 45 ;
jpeg_fdct_ifast @ 46 ;
jpeg_fdct_islow @ 47 ;
jpeg_fill_bit_buffer @ 48 ;
jpeg_finish_compress @ 49 ;
jpeg_finish_decompress @ 50 ;
jpeg_finish_output @ 51 ;
jpeg_free_large @ 52 ;
jpeg_free_small @ 53 ;
jpeg_gen_optimal_table @ 54 ;
jpeg_get_large @ 55 ;
jpeg_get_small @ 56 ;
jpeg_has_multiple_scans @ 57 ;
jpeg_huff_decode @ 58 ;
jpeg_idct_1x1 @ 59 ;
jpeg_idct_2x2 @ 60 ;
jpeg_idct_4x4 @ 61 ;
jpeg_idct_float @ 62 ;
jpeg_idct_ifast @ 63 ;
jpeg_idct_islow @ 64 ;
jpeg_input_complete @ 65 ;
jpeg_make_c_derived_tbl @ 66 ;
jpeg_make_d_derived_tbl @ 67 ;
jpeg_mem_available @ 68 ;
jpeg_mem_init @ 69 ;
jpeg_mem_term @ 70 ;
jpeg_new_colormap @ 71 ;
jpeg_open_backing_store @ 72 ;
jpeg_quality_scaling @ 73 ;
jpeg_read_coefficients @ 74 ;
jpeg_read_header @ 75 ;
jpeg_read_raw_data @ 76 ;
jpeg_read_scanlines @ 77 ;
jpeg_resync_to_restart @ 78 ;
jpeg_save_markers @ 79 ;
jpeg_set_colorspace @ 80 ;
jpeg_set_defaults @ 81 ;
jpeg_set_linear_quality @ 82 ;
jpeg_set_marker_processor @ 83 ;
jpeg_set_quality @ 84 ;
jpeg_simple_progression @ 85 ;
jpeg_start_compress @ 86 ;
jpeg_start_decompress @ 87 ;
jpeg_start_output @ 88 ;
jpeg_std_error @ 89 ;
jpeg_stdio_dest @ 90 ;
jpeg_stdio_src @ 91 ;
jpeg_suppress_tables @ 92 ;
jpeg_write_coefficients @ 93 ;
jpeg_write_m_byte @ 94 ;
jpeg_write_m_header @ 95 ;
jpeg_write_marker @ 96 ;
jpeg_write_raw_data @ 97 ;
jpeg_write_scanlines @ 98 ;
jpeg_write_tables @ 99 ;
jround_up @ 100 ;
jzero_far @ 101 ;

Binary file not shown.

@ -1,372 +0,0 @@
; h:\mingw\3.3.1\bin\dlltool.exe --export-all-symbols --output-def=libpng.def png.dll.o pngset.dll.o pngget.dll.o pngrutil.dll.o pngtrans.dll.o pngwutil.dll.o pngread.dll.o pngrio.dll.o pngwio.dll.o pngwrite.dll.o pngrtran.dll.o pngwtran.dll.o pngmem.dll.o pngerror.dll.o pngpread.dll.o pnggccrd.dll.o libpng-dllversion.dll.o libpng-dll-res.o
EXPORTS
ActiveMask @ 1 DATA ;
ActiveMask2 @ 2 DATA ;
ActiveMaskEnd @ 3 DATA ;
DllGetVersion @ 4 ;
HBClearMask @ 5 DATA ;
LBCarryMask @ 6 DATA ;
ShiftBpp @ 7 DATA ;
ShiftRem @ 8 DATA ;
png_IDAT @ 9 DATA ;
png_IEND @ 10 DATA ;
png_IHDR @ 11 DATA ;
png_PLTE @ 12 DATA ;
png_access_version_number @ 13 ;
png_bKGD @ 14 DATA ;
png_build_gamma_table @ 15 ;
png_build_grayscale_palette @ 16 ;
png_cHRM @ 17 DATA ;
png_calculate_crc @ 18 ;
png_check_chunk_name @ 19 ;
png_check_keyword @ 20 ;
png_check_sig @ 21 ;
png_chunk_error @ 22 ;
png_chunk_warning @ 23 ;
png_combine_row @ 24 ;
png_convert_from_struct_tm @ 25 ;
png_convert_from_time_t @ 26 ;
png_convert_to_rfc1123 @ 27 ;
png_crc_error @ 28 ;
png_crc_finish @ 29 ;
png_crc_read @ 30 ;
png_create_info_struct @ 31 ;
png_create_read_struct @ 32 ;
png_create_read_struct_2 @ 33 ;
png_create_struct @ 34 ;
png_create_struct_2 @ 35 ;
png_create_write_struct @ 36 ;
png_create_write_struct_2 @ 37 ;
png_data_freer @ 38 ;
png_decompress_chunk @ 39 ;
png_default_flush @ 40 ;
png_default_read_data @ 41 ;
png_default_write_data @ 42 ;
png_destroy_info_struct @ 43 ;
png_destroy_read_struct @ 44 ;
png_destroy_struct @ 45 ;
png_destroy_struct_2 @ 46 ;
png_destroy_write_struct @ 47 ;
png_do_background @ 48 ;
png_do_bgr @ 49 ;
png_do_chop @ 50 ;
png_do_dither @ 51 ;
png_do_expand @ 52 ;
png_do_expand_palette @ 53 ;
png_do_gamma @ 54 ;
png_do_gray_to_rgb @ 55 ;
png_do_invert @ 56 ;
png_do_pack @ 57 ;
png_do_packswap @ 58 ;
png_do_read_filler @ 59 ;
png_do_read_interlace @ 60 ;
png_do_read_intrapixel @ 61 ;
png_do_read_invert_alpha @ 62 ;
png_do_read_swap_alpha @ 63 ;
png_do_read_transformations @ 64 ;
png_do_rgb_to_gray @ 65 ;
png_do_shift @ 66 ;
png_do_strip_filler @ 67 ;
png_do_swap @ 68 ;
png_do_unpack @ 69 ;
png_do_unshift @ 70 ;
png_do_write_interlace @ 71 ;
png_do_write_intrapixel @ 72 ;
png_do_write_invert_alpha @ 73 ;
png_do_write_swap_alpha @ 74 ;
png_do_write_transformations @ 75 ;
png_error @ 76 ;
png_flush @ 77 ;
png_free @ 78 ;
png_free_data @ 79 ;
png_free_default @ 80 ;
png_gAMA @ 81 DATA ;
png_get_IHDR @ 82 ;
png_get_PLTE @ 83 ;
png_get_asm_flagmask @ 84 ;
png_get_asm_flags @ 85 ;
png_get_bKGD @ 86 ;
png_get_bit_depth @ 87 ;
png_get_cHRM @ 88 ;
png_get_cHRM_fixed @ 89 ;
png_get_channels @ 90 ;
png_get_color_type @ 91 ;
png_get_compression_buffer_size @ 92 ;
png_get_compression_type @ 93 ;
png_get_copyright @ 94 ;
png_get_error_ptr @ 95 ;
png_get_filter_type @ 96 ;
png_get_gAMA @ 97 ;
png_get_gAMA_fixed @ 98 ;
png_get_hIST @ 99 ;
png_get_header_ver @ 100 ;
png_get_header_version @ 101 ;
png_get_iCCP @ 102 ;
png_get_image_height @ 103 ;
png_get_image_width @ 104 ;
png_get_int_32 @ 105 ;
png_get_interlace_type @ 106 ;
png_get_io_ptr @ 107 ;
png_get_libpng_ver @ 108 ;
png_get_mem_ptr @ 109 ;
png_get_mmx_bitdepth_threshold @ 110 ;
png_get_mmx_flagmask @ 111 ;
png_get_mmx_rowbytes_threshold @ 112 ;
png_get_oFFs @ 113 ;
png_get_pCAL @ 114 ;
png_get_pHYs @ 115 ;
png_get_pixel_aspect_ratio @ 116 ;
png_get_pixels_per_meter @ 117 ;
png_get_progressive_ptr @ 118 ;
png_get_rgb_to_gray_status @ 119 ;
png_get_rowbytes @ 120 ;
png_get_rows @ 121 ;
png_get_sBIT @ 122 ;
png_get_sCAL @ 123 ;
png_get_sPLT @ 124 ;
png_get_sRGB @ 125 ;
png_get_signature @ 126 ;
png_get_tIME @ 127 ;
png_get_tRNS @ 128 ;
png_get_text @ 129 ;
png_get_uint_16 @ 130 ;
png_get_uint_31 @ 131 ;
png_get_uint_32 @ 132 ;
png_get_unknown_chunks @ 133 ;
png_get_user_chunk_ptr @ 134 ;
png_get_user_height_max @ 135 ;
png_get_user_transform_ptr @ 136 ;
png_get_user_width_max @ 137 ;
png_get_valid @ 138 ;
png_get_x_offset_microns @ 139 ;
png_get_x_offset_pixels @ 140 ;
png_get_x_pixels_per_meter @ 141 ;
png_get_y_offset_microns @ 142 ;
png_get_y_offset_pixels @ 143 ;
png_get_y_pixels_per_meter @ 144 ;
png_hIST @ 145 DATA ;
png_handle_IEND @ 146 ;
png_handle_IHDR @ 147 ;
png_handle_PLTE @ 148 ;
png_handle_as_unknown @ 149 ;
png_handle_bKGD @ 150 ;
png_handle_cHRM @ 151 ;
png_handle_gAMA @ 152 ;
png_handle_hIST @ 153 ;
png_handle_iCCP @ 154 ;
png_handle_oFFs @ 155 ;
png_handle_pCAL @ 156 ;
png_handle_pHYs @ 157 ;
png_handle_sBIT @ 158 ;
png_handle_sCAL @ 159 ;
png_handle_sPLT @ 160 ;
png_handle_sRGB @ 161 ;
png_handle_tEXt @ 162 ;
png_handle_tIME @ 163 ;
png_handle_tRNS @ 164 ;
png_handle_unknown @ 165 ;
png_handle_zTXt @ 166 ;
png_iCCP @ 167 DATA ;
png_iTXt @ 168 DATA ;
png_info_destroy @ 169 ;
png_info_init @ 170 ;
png_info_init_3 @ 171 ;
png_init_io @ 172 ;
png_init_mmx_flags @ 173 ;
png_init_read_transformations @ 174 ;
png_libpng_ver @ 175 DATA ;
png_malloc @ 176 ;
png_malloc_default @ 177 ;
png_malloc_warn @ 178 ;
png_memcpy_check @ 179 ;
png_memset_check @ 180 ;
png_mmx_support @ 181 ;
png_oFFs @ 182 DATA ;
png_pCAL @ 183 DATA ;
png_pHYs @ 184 DATA ;
png_pass_dsp_mask @ 185 DATA ;
png_pass_inc @ 186 DATA ;
png_pass_mask @ 187 DATA ;
png_pass_start @ 188 DATA ;
png_pass_width @ 189 DATA ;
png_pass_yinc @ 190 DATA ;
png_pass_ystart @ 191 DATA ;
png_permit_empty_plte @ 192 ;
png_permit_mng_features @ 193 ;
png_process_IDAT_data @ 194 ;
png_process_data @ 195 ;
png_process_some_data @ 196 ;
png_progressive_combine_row @ 197 ;
png_push_crc_finish @ 198 ;
png_push_crc_skip @ 199 ;
png_push_fill_buffer @ 200 ;
png_push_handle_tEXt @ 201 ;
png_push_handle_unknown @ 202 ;
png_push_handle_zTXt @ 203 ;
png_push_have_end @ 204 ;
png_push_have_info @ 205 ;
png_push_have_row @ 206 ;
png_push_process_row @ 207 ;
png_push_read_IDAT @ 208 ;
png_push_read_chunk @ 209 ;
png_push_read_sig @ 210 ;
png_push_read_tEXt @ 211 ;
png_push_read_zTXt @ 212 ;
png_push_restore_buffer @ 213 ;
png_push_save_buffer @ 214 ;
png_read_data @ 215 ;
png_read_destroy @ 216 ;
png_read_end @ 217 ;
png_read_filter_row @ 218 ;
png_read_finish_row @ 219 ;
png_read_image @ 220 ;
png_read_info @ 221 ;
png_read_init @ 222 ;
png_read_init_2 @ 223 ;
png_read_init_3 @ 224 ;
png_read_png @ 225 ;
png_read_push_finish_row @ 226 ;
png_read_row @ 227 ;
png_read_rows @ 228 ;
png_read_start_row @ 229 ;
png_read_transform_info @ 230 ;
png_read_update_info @ 231 ;
png_reset_crc @ 232 ;
png_reset_zstream @ 233 ;
png_sBIT @ 234 DATA ;
png_sCAL @ 235 DATA ;
png_sPLT @ 236 DATA ;
png_sRGB @ 237 DATA ;
png_save_int_32 @ 238 ;
png_save_uint_16 @ 239 ;
png_save_uint_32 @ 240 ;
png_set_IHDR @ 241 ;
png_set_PLTE @ 242 ;
png_set_add_alpha @ 243 ;
png_set_asm_flags @ 244 ;
png_set_bKGD @ 245 ;
png_set_background @ 246 ;
png_set_bgr @ 247 ;
png_set_cHRM @ 248 ;
png_set_cHRM_fixed @ 249 ;
png_set_compression_buffer_size @ 250 ;
png_set_compression_level @ 251 ;
png_set_compression_mem_level @ 252 ;
png_set_compression_method @ 253 ;
png_set_compression_strategy @ 254 ;
png_set_compression_window_bits @ 255 ;
png_set_crc_action @ 256 ;
png_set_dither @ 257 ;
png_set_error_fn @ 258 ;
png_set_expand @ 259 ;
png_set_filler @ 260 ;
png_set_filter @ 261 ;
png_set_filter_heuristics @ 262 ;
png_set_flush @ 263 ;
png_set_gAMA @ 264 ;
png_set_gAMA_fixed @ 265 ;
png_set_gamma @ 266 ;
png_set_gray_1_2_4_to_8 @ 267 ;
png_set_gray_to_rgb @ 268 ;
png_set_hIST @ 269 ;
png_set_iCCP @ 270 ;
png_set_interlace_handling @ 271 ;
png_set_invalid @ 272 ;
png_set_invert_alpha @ 273 ;
png_set_invert_mono @ 274 ;
png_set_keep_unknown_chunks @ 275 ;
png_set_mem_fn @ 276 ;
png_set_mmx_thresholds @ 277 ;
png_set_oFFs @ 278 ;
png_set_pCAL @ 279 ;
png_set_pHYs @ 280 ;
png_set_packing @ 281 ;
png_set_packswap @ 282 ;
png_set_palette_to_rgb @ 283 ;
png_set_progressive_read_fn @ 284 ;
png_set_read_fn @ 285 ;
png_set_read_status_fn @ 286 ;
png_set_read_user_chunk_fn @ 287 ;
png_set_read_user_transform_fn @ 288 ;
png_set_rgb_to_gray @ 289 ;
png_set_rgb_to_gray_fixed @ 290 ;
png_set_rows @ 291 ;
png_set_sBIT @ 292 ;
png_set_sCAL @ 293 ;
png_set_sPLT @ 294 ;
png_set_sRGB @ 295 ;
png_set_sRGB_gAMA_and_cHRM @ 296 ;
png_set_shift @ 297 ;
png_set_sig_bytes @ 298 ;
png_set_strip_16 @ 299 ;
png_set_strip_alpha @ 300 ;
png_set_strip_error_numbers @ 301 ;
png_set_swap @ 302 ;
png_set_swap_alpha @ 303 ;
png_set_tIME @ 304 ;
png_set_tRNS @ 305 ;
png_set_tRNS_to_alpha @ 306 ;
png_set_text @ 307 ;
png_set_text_2 @ 308 ;
png_set_unknown_chunk_location @ 309 ;
png_set_unknown_chunks @ 310 ;
png_set_user_limits @ 311 ;
png_set_user_transform_info @ 312 ;
png_set_write_fn @ 313 ;
png_set_write_status_fn @ 314 ;
png_set_write_user_transform_fn @ 315 ;
png_sig @ 316 DATA ;
png_sig_cmp @ 317 ;
png_squelch_warnings @ 318 ;
png_start_read_image @ 319 ;
png_tEXt @ 320 DATA ;
png_tIME @ 321 DATA ;
png_tRNS @ 322 DATA ;
png_warning @ 323 ;
png_write_IDAT @ 324 ;
png_write_IEND @ 325 ;
png_write_IHDR @ 326 ;
png_write_PLTE @ 327 ;
png_write_bKGD @ 328 ;
png_write_cHRM @ 329 ;
png_write_cHRM_fixed @ 330 ;
png_write_chunk @ 331 ;
png_write_chunk_data @ 332 ;
png_write_chunk_end @ 333 ;
png_write_chunk_start @ 334 ;
png_write_data @ 335 ;
png_write_destroy @ 336 ;
png_write_end @ 337 ;
png_write_filtered_row @ 338 ;
png_write_find_filter @ 339 ;
png_write_finish_row @ 340 ;
png_write_flush @ 341 ;
png_write_gAMA @ 342 ;
png_write_gAMA_fixed @ 343 ;
png_write_hIST @ 344 ;
png_write_iCCP @ 345 ;
png_write_image @ 346 ;
png_write_info @ 347 ;
png_write_info_before_PLTE @ 348 ;
png_write_init @ 349 ;
png_write_init_2 @ 350 ;
png_write_init_3 @ 351 ;
png_write_oFFs @ 352 ;
png_write_pCAL @ 353 ;
png_write_pHYs @ 354 ;
png_write_png @ 355 ;
png_write_row @ 356 ;
png_write_rows @ 357 ;
png_write_sBIT @ 358 ;
png_write_sCAL @ 359 ;
png_write_sPLT @ 360 ;
png_write_sRGB @ 361 ;
png_write_sig @ 362 ;
png_write_start_row @ 363 ;
png_write_tEXt @ 364 ;
png_write_tIME @ 365 ;
png_write_tRNS @ 366 ;
png_write_zTXt @ 367 ;
png_zTXt @ 368 DATA ;
png_zalloc @ 369 ;
png_zfree @ 370 ;

Binary file not shown.

@ -1,239 +0,0 @@
LIBRARY libpng12.dll
EXPORTS
DllGetVersion
png_IDAT DATA
png_IEND DATA
png_IHDR DATA
png_PLTE DATA
png_access_version_number
png_bKGD DATA
png_build_grayscale_palette
png_cHRM DATA
png_check_sig
png_chunk_error
png_chunk_warning
png_convert_from_struct_tm
png_convert_from_time_t
png_convert_to_rfc1123
png_create_info_struct
png_create_read_struct
png_create_read_struct_2
png_create_write_struct
png_create_write_struct_2
png_data_freer
png_destroy_info_struct
png_destroy_read_struct
png_destroy_write_struct
png_error
png_free
png_free_data
png_free_default
png_gAMA DATA
png_get_IHDR
png_get_PLTE
png_get_asm_flagmask
png_get_asm_flags
png_get_bKGD
png_get_bit_depth
png_get_cHRM
png_get_cHRM_fixed
png_get_channels
png_get_color_type
png_get_compression_buffer_size
png_get_compression_type
png_get_copyright
png_get_error_ptr
png_get_filter_type
png_get_gAMA
png_get_gAMA_fixed
png_get_hIST
png_get_header_ver
png_get_header_version
png_get_iCCP
png_get_image_height
png_get_image_width
png_get_int_32
png_get_interlace_type
png_get_io_ptr
png_get_libpng_ver
png_get_mem_ptr
png_get_mmx_bitdepth_threshold
png_get_mmx_flagmask
png_get_mmx_rowbytes_threshold
png_get_oFFs
png_get_pCAL
png_get_pHYs
png_get_pixel_aspect_ratio
png_get_pixels_per_meter
png_get_progressive_ptr
png_get_rgb_to_gray_status
png_get_rowbytes
png_get_rows
png_get_sBIT
png_get_sCAL
png_get_sPLT
png_get_sRGB
png_get_signature
png_get_tIME
png_get_tRNS
png_get_text
png_get_uint_16
png_get_uint_31
png_get_uint_32
png_get_unknown_chunks
png_get_user_chunk_ptr
png_get_user_height_max
png_get_user_transform_ptr
png_get_user_width_max
png_get_valid
png_get_x_offset_microns
png_get_x_offset_pixels
png_get_x_pixels_per_meter
png_get_y_offset_microns
png_get_y_offset_pixels
png_get_y_pixels_per_meter
png_hIST DATA
png_handle_as_unknown
png_iCCP DATA
png_iTXt DATA
png_info_init
png_info_init_3
png_init_io
png_libpng_ver DATA
png_malloc
png_malloc_default
png_malloc_warn
png_memcpy_check
png_memset_check
png_mmx_support
png_oFFs DATA
png_pCAL DATA
png_pHYs DATA
png_pass_dsp_mask DATA
png_pass_inc DATA
png_pass_mask DATA
png_pass_start DATA
png_pass_yinc DATA
png_pass_ystart DATA
png_permit_empty_plte
png_permit_mng_features
png_process_data
png_progressive_combine_row
png_read_destroy
png_read_end
png_read_image
png_read_info
png_read_init
png_read_init_2
png_read_init_3
png_read_png
png_read_row
png_read_rows
png_read_update_info
png_reset_zstream
png_sBIT DATA
png_sCAL DATA
png_sPLT DATA
png_sRGB DATA
png_save_int_32
png_save_uint_16
png_save_uint_32
png_set_IHDR
png_set_PLTE
png_set_add_alpha
png_set_asm_flags
png_set_bKGD
png_set_background
png_set_bgr
png_set_cHRM
png_set_cHRM_fixed
png_set_compression_buffer_size
png_set_compression_level
png_set_compression_mem_level
png_set_compression_method
png_set_compression_strategy
png_set_compression_window_bits
png_set_crc_action
png_set_dither
png_set_error_fn
png_set_expand
png_set_expand_gray_1_2_4_to_8
png_set_filler
png_set_filter
png_set_filter_heuristics
png_set_flush
png_set_gAMA
png_set_gAMA_fixed
png_set_gamma
png_set_gray_1_2_4_to_8
png_set_gray_to_rgb
png_set_hIST
png_set_iCCP
png_set_interlace_handling
png_set_invalid
png_set_invert_alpha
png_set_invert_mono
png_set_keep_unknown_chunks
png_set_mem_fn
png_set_mmx_thresholds
png_set_oFFs
png_set_pCAL
png_set_pHYs
png_set_packing
png_set_packswap
png_set_palette_to_rgb
png_set_progressive_read_fn
png_set_read_fn
png_set_read_status_fn
png_set_read_user_chunk_fn
png_set_read_user_transform_fn
png_set_rgb_to_gray
png_set_rgb_to_gray_fixed
png_set_rows
png_set_sBIT
png_set_sCAL
png_set_sPLT
png_set_sRGB
png_set_sRGB_gAMA_and_cHRM
png_set_shift
png_set_sig_bytes
png_set_strip_16
png_set_strip_alpha
png_set_strip_error_numbers
png_set_swap
png_set_swap_alpha
png_set_tIME
png_set_tRNS
png_set_tRNS_to_alpha
png_set_text
png_set_unknown_chunk_location
png_set_unknown_chunks
png_set_user_limits
png_set_user_transform_info
png_set_write_fn
png_set_write_status_fn
png_set_write_user_transform_fn
png_sig DATA
png_sig_cmp
png_start_read_image
png_tEXt DATA
png_tIME DATA
png_tRNS DATA
png_warning
png_write_chunk
png_write_chunk_data
png_write_chunk_end
png_write_chunk_start
png_write_destroy
png_write_end
png_write_flush
png_write_image
png_write_info
png_write_info_before_PLTE
png_write_init
png_write_init_2
png_write_init_3
png_write_png
png_write_row
png_write_rows
png_zTXt DATA

@ -1,154 +0,0 @@
; g:\mingw\3.3.1\bin\dlltool.exe --output-def=libtiff.def tif_aux.o tif_close.o tif_codec.o tif_color.o tif_compress.o tif_dir.o tif_dirinfo.o tif_dirread.o tif_dirwrite.o tif_dumpmode.o tif_error.o tif_extension.o tif_fax3.o tif_fax3sm.o tif_flush.o tif_getimage.o tif_jpeg.o tif_luv.o tif_lzw.o tif_next.o tif_ojpeg.o tif_open.o tif_packbits.o tif_pixarlog.o tif_predict.o tif_print.o tif_read.o tif_strip.o tif_swab.o tif_thunder.o tif_tile.o tif_unix.o tif_version.o tif_warning.o tif_write.o tif_zip.o libtiff-dllversion.o libtiff-dll-res.o
EXPORTS
DllGetVersion @ 1 ;
LogL10fromY @ 2 ;
LogL10toY @ 3 ;
LogL16fromY @ 4 ;
LogL16toY @ 5 ;
LogLuv24fromXYZ @ 6 ;
LogLuv24toXYZ @ 7 ;
LogLuv32fromXYZ @ 8 ;
LogLuv32toXYZ @ 9 ;
TIFFAccessTagMethods @ 10 ;
TIFFCIELabToRGBInit @ 11 ;
TIFFCIELabToXYZ @ 12 ;
TIFFCheckTile @ 13 ;
TIFFCheckpointDirectory @ 14 ;
TIFFCleanup @ 15 ;
TIFFClientOpen @ 16 ;
TIFFClientdata @ 17 ;
TIFFClose @ 18 ;
TIFFComputeStrip @ 19 ;
TIFFComputeTile @ 20 ;
TIFFCreateDirectory @ 21 ;
TIFFCurrentDirOffset @ 22 ;
TIFFCurrentDirectory @ 23 ;
TIFFCurrentRow @ 24 ;
TIFFCurrentStrip @ 25 ;
TIFFCurrentTile @ 26 ;
TIFFDataWidth @ 27 ;
TIFFDefaultStripSize @ 28 ;
TIFFDefaultTileSize @ 29 ;
TIFFError @ 30 ;
TIFFErrorExt @ 31 ;
TIFFFdOpen @ 32 ;
TIFFFieldWithName @ 33 ;
TIFFFieldWithTag @ 34 ;
TIFFFileName @ 35 ;
TIFFFileno @ 36 ;
TIFFFindCODEC @ 37 ;
TIFFFindFieldInfo @ 38 ;
TIFFFindFieldInfoByName @ 39 ;
TIFFFlush @ 40 ;
TIFFFlushData @ 41 ;
TIFFFreeDirectory @ 42 ;
TIFFGetBitRevTable @ 43 ;
TIFFGetClientInfo @ 44 ;
TIFFGetCloseProc @ 45 ;
TIFFGetConfiguredCODECs @ 46 ;
TIFFGetField @ 47 ;
TIFFGetFieldDefaulted @ 48 ;
TIFFGetMapFileProc @ 49 ;
TIFFGetMode @ 50 ;
TIFFGetReadProc @ 51 ;
TIFFGetSeekProc @ 52 ;
TIFFGetSizeProc @ 53 ;
TIFFGetTagListCount @ 54 ;
TIFFGetTagListEntry @ 55 ;
TIFFGetUnmapFileProc @ 56 ;
TIFFGetVersion @ 57 ;
TIFFGetWriteProc @ 58 ;
TIFFIsBigEndian @ 59 ;
TIFFIsByteSwapped @ 60 ;
TIFFIsCODECConfigured @ 61 ;
TIFFIsMSB2LSB @ 62 ;
TIFFIsTiled @ 63 ;
TIFFIsUpSampled @ 64 ;
TIFFLastDirectory @ 65 ;
TIFFMergeFieldInfo @ 66 ;
TIFFNumberOfDirectories @ 67 ;
TIFFNumberOfStrips @ 68 ;
TIFFNumberOfTiles @ 69 ;
TIFFOpen @ 70 ;
TIFFOpenW @ 71 ;
TIFFPrintDirectory @ 72 ;
TIFFRGBAImageBegin @ 73 ;
TIFFRGBAImageEnd @ 74 ;
TIFFRGBAImageGet @ 75 ;
TIFFRGBAImageOK @ 76 ;
TIFFRasterScanlineSize @ 77 ;
TIFFRawStripSize @ 78 ;
TIFFReadBufferSetup @ 79 ;
TIFFReadCustomDirectory @ 80 ;
TIFFReadDirectory @ 81 ;
TIFFReadEXIFDirectory @ 82 ;
TIFFReadEncodedStrip @ 83 ;
TIFFReadEncodedTile @ 84 ;
TIFFReadRGBAImage @ 85 ;
TIFFReadRGBAImageOriented @ 86 ;
TIFFReadRGBAStrip @ 87 ;
TIFFReadRGBATile @ 88 ;
TIFFReadRawStrip @ 89 ;
TIFFReadRawTile @ 90 ;
TIFFReadScanline @ 91 ;
TIFFReadTile @ 92 ;
TIFFReassignTagToIgnore @ 93 ;
TIFFRegisterCODEC @ 94 ;
TIFFReverseBits @ 95 ;
TIFFRewriteDirectory @ 96 ;
TIFFScanlineSize @ 97 ;
TIFFSetClientInfo @ 98 ;
TIFFSetClientdata @ 99 ;
TIFFSetDirectory @ 100 ;
TIFFSetErrorHandler @ 101 ;
TIFFSetErrorHandlerExt @ 102 ;
TIFFSetField @ 103 ;
TIFFSetFileName @ 104 ;
TIFFSetFileno @ 105 ;
TIFFSetMode @ 106 ;
TIFFSetSubDirectory @ 107 ;
TIFFSetTagExtender @ 108 ;
TIFFSetWarningHandler @ 109 ;
TIFFSetWarningHandlerExt @ 110 ;
TIFFSetWriteOffset @ 111 ;
TIFFSetupStrips @ 112 ;
TIFFStripSize @ 113 ;
TIFFSwabArrayOfDouble @ 114 ;
TIFFSwabArrayOfLong @ 115 ;
TIFFSwabArrayOfShort @ 116 ;
TIFFSwabArrayOfTriples @ 117 ;
TIFFSwabDouble @ 118 ;
TIFFSwabLong @ 119 ;
TIFFSwabShort @ 120 ;
TIFFTileRowSize @ 121 ;
TIFFTileSize @ 122 ;
TIFFUnRegisterCODEC @ 123 ;
TIFFUnlinkDirectory @ 124 ;
TIFFVGetField @ 125 ;
TIFFVGetFieldDefaulted @ 126 ;
TIFFVSetField @ 127 ;
TIFFVStripSize @ 128 ;
TIFFVTileSize @ 129 ;
TIFFWarning @ 130 ;
TIFFWarningExt @ 131 ;
TIFFWriteBufferSetup @ 132 ;
TIFFWriteCheck @ 133 ;
TIFFWriteDirectory @ 134 ;
TIFFWriteEncodedStrip @ 135 ;
TIFFWriteEncodedTile @ 136 ;
TIFFWriteRawStrip @ 137 ;
TIFFWriteRawTile @ 138 ;
TIFFWriteScanline @ 139 ;
TIFFWriteTile @ 140 ;
TIFFXYZToRGB @ 141 ;
TIFFYCbCrToRGBInit @ 142 ;
TIFFYCbCrtoRGB @ 143 ;
XYZtoRGB24 @ 144 ;
_TIFFfree @ 145 ;
_TIFFmalloc @ 146 ;
_TIFFmemcmp @ 147 ;
_TIFFmemcpy @ 148 ;
_TIFFmemset @ 149 ;
_TIFFrealloc @ 150 ;
uv_decode @ 151 ;
uv_encode @ 152 ;

Binary file not shown.

@ -1,75 +0,0 @@
; h:\mingw\3.3.1\bin\dlltool.exe --export-all-symbols --output-def=zlib.def adler32.pic.o compress.pic.o crc32.pic.o gzio.pic.o uncompr.pic.o deflate.pic.o trees.pic.o zutil.pic.o inflate.pic.o infback.pic.o inftrees.pic.o inffast.pic.o zlib-dllversion.o zlib-dll-res.o
EXPORTS
DllGetVersion @ 1 ;
_dist_code @ 2 DATA ;
_length_code @ 3 DATA ;
_tr_align @ 4 ;
_tr_flush_block @ 5 ;
_tr_init @ 6 ;
_tr_stored_block @ 7 ;
_tr_tally @ 8 ;
adler32 @ 9 ;
adler32_combine @ 10 ;
compress @ 11 ;
compress2 @ 12 ;
compressBound @ 13 ;
crc32 @ 14 ;
crc32_combine @ 15 ;
deflate @ 16 ;
deflateBound @ 17 ;
deflateCopy @ 18 ;
deflateEnd @ 19 ;
deflateInit2_ @ 20 ;
deflateInit_ @ 21 ;
deflateParams @ 22 ;
deflatePrime @ 23 ;
deflateReset @ 24 ;
deflateSetDictionary @ 25 ;
deflateSetHeader @ 26 ;
deflateTune @ 27 ;
deflate_copyright @ 28 DATA ;
get_crc_table @ 29 ;
gzclearerr @ 30 ;
gzclose @ 31 ;
gzdirect @ 32 ;
gzdopen @ 33 ;
gzeof @ 34 ;
gzerror @ 35 ;
gzflush @ 36 ;
gzgetc @ 37 ;
gzgets @ 38 ;
gzopen @ 39 ;
gzprintf @ 40 ;
gzputc @ 41 ;
gzputs @ 42 ;
gzread @ 43 ;
gzrewind @ 44 ;
gzseek @ 45 ;
gzsetparams @ 46 ;
gztell @ 47 ;
gzungetc @ 48 ;
gzwrite @ 49 ;
inflate @ 50 ;
inflateBack @ 51 ;
inflateBackEnd @ 52 ;
inflateBackInit_ @ 53 ;
inflateCopy @ 54 ;
inflateEnd @ 55 ;
inflateGetHeader @ 56 ;
inflateInit2_ @ 57 ;
inflateInit_ @ 58 ;
inflatePrime @ 59 ;
inflateReset @ 60 ;
inflateSetDictionary @ 61 ;
inflateSync @ 62 ;
inflateSyncPoint @ 63 ;
inflate_copyright @ 64 DATA ;
inflate_fast @ 65 ;
inflate_table @ 66 ;
uncompress @ 67 ;
zError @ 68 ;
z_errmsg @ 69 DATA ;
zcalloc @ 70 ;
zcfree @ 71 ;
zlibCompileFlags @ 72 ;
zlibVersion @ 73 ;

Binary file not shown.

@ -1,376 +0,0 @@
/*
This source is published under the following 3-clause BSD license.
Copyright (c) 2012, Lukas Hosek and Alexander Wilkie
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* None of the names of the contributors may be used to endorse or promote
products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/* ============================================================================
This file is part of a sample implementation of the analytical skylight model
presented in the SIGGRAPH 2012 paper
"An Analytic Model for Full Spectral Sky-Dome Radiance"
by
Lukas Hosek and Alexander Wilkie
Charles University in Prague, Czech Republic
Version: 1.0, May 11th, 2012
Please visit http://cgg.mff.cuni.cz/projects/SkylightModelling/ to check if
an updated version of this code has been published!
============================================================================ */
/*
All instructions on how to use this code are to be found in the accompanying
header file.
*/
#include "ArHosekSkyModel.h"
#include "ArHosekSkyModelData.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
// Some macro definitions that occur elsewhere in ART, and that have to be
// replicated to make this a stand-alone module.
#ifndef NIL
#define NIL 0
#endif
#ifndef MATH_PI
#define MATH_PI 3.141593
#endif
#ifndef ALLOC
#define ALLOC(_struct) ((_struct *)malloc(sizeof(_struct)))
#endif
// internal definitions
typedef double *ArHosekSkyModel_Dataset;
typedef double *ArHosekSkyModel_Radiance_Dataset;
// internal functions
void ArHosekSkyModel_CookConfiguration(
ArHosekSkyModel_Dataset dataset,
ArHosekSkyModelConfiguration config,
double turbidity,
double albedo,
double solar_elevation
)
{
double * elev_matrix;
int int_turbidity = turbidity;
double turbidity_rem = turbidity - (double)int_turbidity;
solar_elevation = pow(solar_elevation / (MATH_PI / 2.0), (1.0 / 3.0));
// alb 0 low turb
elev_matrix = dataset + ( 9 * 6 * (int_turbidity-1) );
for( unsigned int i = 0; i < 9; ++i )
{
//(1-t).^3* A1 + 3*(1-t).^2.*t * A2 + 3*(1-t) .* t .^ 2 * A3 + t.^3 * A4;
config[i] =
(1.0-albedo) * (1.0 - turbidity_rem)
* ( pow(1.0-solar_elevation, 5.0) * elev_matrix[i] +
5.0 * pow(1.0-solar_elevation, 4.0) * solar_elevation * elev_matrix[i+9] +
10.0*pow(1.0-solar_elevation, 3.0)*pow(solar_elevation, 2.0) * elev_matrix[i+18] +
10.0*pow(1.0-solar_elevation, 2.0)*pow(solar_elevation, 3.0) * elev_matrix[i+27] +
5.0*(1.0-solar_elevation)*pow(solar_elevation, 4.0) * elev_matrix[i+36] +
pow(solar_elevation, 5.0) * elev_matrix[i+45]);
}
// alb 1 low turb
elev_matrix = dataset + (9*6*10 + 9*6*(int_turbidity-1));
for(unsigned int i = 0; i < 9; ++i)
{
//(1-t).^3* A1 + 3*(1-t).^2.*t * A2 + 3*(1-t) .* t .^ 2 * A3 + t.^3 * A4;
config[i] +=
(albedo) * (1.0 - turbidity_rem)
* ( pow(1.0-solar_elevation, 5.0) * elev_matrix[i] +
5.0 * pow(1.0-solar_elevation, 4.0) * solar_elevation * elev_matrix[i+9] +
10.0*pow(1.0-solar_elevation, 3.0)*pow(solar_elevation, 2.0) * elev_matrix[i+18] +
10.0*pow(1.0-solar_elevation, 2.0)*pow(solar_elevation, 3.0) * elev_matrix[i+27] +
5.0*(1.0-solar_elevation)*pow(solar_elevation, 4.0) * elev_matrix[i+36] +
pow(solar_elevation, 5.0) * elev_matrix[i+45]);
}
if(int_turbidity == 10)
return;
// alb 0 high turb
elev_matrix = dataset + (9*6*(int_turbidity));
for(unsigned int i = 0; i < 9; ++i)
{
//(1-t).^3* A1 + 3*(1-t).^2.*t * A2 + 3*(1-t) .* t .^ 2 * A3 + t.^3 * A4;
config[i] +=
(1.0-albedo) * (turbidity_rem)
* ( pow(1.0-solar_elevation, 5.0) * elev_matrix[i] +
5.0 * pow(1.0-solar_elevation, 4.0) * solar_elevation * elev_matrix[i+9] +
10.0*pow(1.0-solar_elevation, 3.0)*pow(solar_elevation, 2.0) * elev_matrix[i+18] +
10.0*pow(1.0-solar_elevation, 2.0)*pow(solar_elevation, 3.0) * elev_matrix[i+27] +
5.0*(1.0-solar_elevation)*pow(solar_elevation, 4.0) * elev_matrix[i+36] +
pow(solar_elevation, 5.0) * elev_matrix[i+45]);
}
// alb 1 high turb
elev_matrix = dataset + (9*6*10 + 9*6*(int_turbidity));
for(unsigned int i = 0; i < 9; ++i)
{
//(1-t).^3* A1 + 3*(1-t).^2.*t * A2 + 3*(1-t) .* t .^ 2 * A3 + t.^3 * A4;
config[i] +=
(albedo) * (turbidity_rem)
* ( pow(1.0-solar_elevation, 5.0) * elev_matrix[i] +
5.0 * pow(1.0-solar_elevation, 4.0) * solar_elevation * elev_matrix[i+9] +
10.0*pow(1.0-solar_elevation, 3.0)*pow(solar_elevation, 2.0) * elev_matrix[i+18] +
10.0*pow(1.0-solar_elevation, 2.0)*pow(solar_elevation, 3.0) * elev_matrix[i+27] +
5.0*(1.0-solar_elevation)*pow(solar_elevation, 4.0) * elev_matrix[i+36] +
pow(solar_elevation, 5.0) * elev_matrix[i+45]);
}
}
double ArHosekSkyModel_CookRadianceConfiguration(
ArHosekSkyModel_Radiance_Dataset dataset,
double turbidity,
double albedo,
double solar_elevation
)
{
double* elev_matrix;
int int_turbidity = turbidity;
double turbidity_rem = turbidity - (double)int_turbidity;
double res;
solar_elevation = pow(solar_elevation / (M_PI / 2.0), (1.0 / 3.0));
// alb 0 low turb
elev_matrix = dataset + (6*(int_turbidity-1));
//(1-t).^3* A1 + 3*(1-t).^2.*t * A2 + 3*(1-t) .* t .^ 2 * A3 + t.^3 * A4;
res = (1.0-albedo) * (1.0 - turbidity_rem) *
( pow(1.0-solar_elevation, 5.0) * elev_matrix[0] +
5.0*pow(1.0-solar_elevation, 4.0)*solar_elevation * elev_matrix[1] +
10.0*pow(1.0-solar_elevation, 3.0)*pow(solar_elevation, 2.0) * elev_matrix[2] +
10.0*pow(1.0-solar_elevation, 2.0)*pow(solar_elevation, 3.0) * elev_matrix[3] +
5.0*(1.0-solar_elevation)*pow(solar_elevation, 4.0) * elev_matrix[4] +
pow(solar_elevation, 5.0) * elev_matrix[5]);
// alb 1 low turb
elev_matrix = dataset + (6*10 + 6*(int_turbidity-1));
//(1-t).^3* A1 + 3*(1-t).^2.*t * A2 + 3*(1-t) .* t .^ 2 * A3 + t.^3 * A4;
res += (albedo) * (1.0 - turbidity_rem) *
( pow(1.0-solar_elevation, 5.0) * elev_matrix[0] +
5.0*pow(1.0-solar_elevation, 4.0)*solar_elevation * elev_matrix[1] +
10.0*pow(1.0-solar_elevation, 3.0)*pow(solar_elevation, 2.0) * elev_matrix[2] +
10.0*pow(1.0-solar_elevation, 2.0)*pow(solar_elevation, 3.0) * elev_matrix[3] +
5.0*(1.0-solar_elevation)*pow(solar_elevation, 4.0) * elev_matrix[4] +
pow(solar_elevation, 5.0) * elev_matrix[5]);
if(int_turbidity == 10)
return res;
// alb 0 high turb
elev_matrix = dataset + (6*(int_turbidity));
//(1-t).^3* A1 + 3*(1-t).^2.*t * A2 + 3*(1-t) .* t .^ 2 * A3 + t.^3 * A4;
res += (1.0-albedo) * (turbidity_rem) *
( pow(1.0-solar_elevation, 5.0) * elev_matrix[0] +
5.0*pow(1.0-solar_elevation, 4.0)*solar_elevation * elev_matrix[1] +
10.0*pow(1.0-solar_elevation, 3.0)*pow(solar_elevation, 2.0) * elev_matrix[2] +
10.0*pow(1.0-solar_elevation, 2.0)*pow(solar_elevation, 3.0) * elev_matrix[3] +
5.0*(1.0-solar_elevation)*pow(solar_elevation, 4.0) * elev_matrix[4] +
pow(solar_elevation, 5.0) * elev_matrix[5]);
// alb 1 high turb
elev_matrix = dataset + (6*10 + 6*(int_turbidity));
//(1-t).^3* A1 + 3*(1-t).^2.*t * A2 + 3*(1-t) .* t .^ 2 * A3 + t.^3 * A4;
res += (albedo) * (turbidity_rem) *
( pow(1.0-solar_elevation, 5.0) * elev_matrix[0] +
5.0*pow(1.0-solar_elevation, 4.0)*solar_elevation * elev_matrix[1] +
10.0*pow(1.0-solar_elevation, 3.0)*pow(solar_elevation, 2.0) * elev_matrix[2] +
10.0*pow(1.0-solar_elevation, 2.0)*pow(solar_elevation, 3.0) * elev_matrix[3] +
5.0*(1.0-solar_elevation)*pow(solar_elevation, 4.0) * elev_matrix[4] +
pow(solar_elevation, 5.0) * elev_matrix[5]);
return res;
}
double ArHosekSkyModel_GetRadianceInternal(
ArHosekSkyModelConfiguration configuration,
double theta,
double gamma
)
{
const double expM = exp(configuration[4] * gamma);
const double rayM = cos(gamma)*cos(gamma);
const double mieM = (1.0 + cos(gamma)*cos(gamma)) / pow((1.0 + configuration[8]*configuration[8] - 2.0*configuration[8]*cos(gamma)), 1.5);
const double zenith = sqrt(cos(theta));
return (1.0 + configuration[0] * exp(configuration[1] / (cos(theta) + 0.01))) *
(configuration[2] + configuration[3] * expM + configuration[5] * rayM + configuration[6] * mieM + configuration[7] * zenith);
}
// spectral version
ArHosekSkyModelState * arhosekskymodelstate_alloc_init(
const double turbidity,
const double albedo,
const double elevation
)
{
ArHosekSkyModelState * state = ALLOC(ArHosekSkyModelState);
for( unsigned int wl = 0; wl < 11; ++wl )
{
ArHosekSkyModel_CookConfiguration(
datasets[wl],
state->configs[wl],
turbidity,
albedo,
elevation
);
state->radiances[wl] =
ArHosekSkyModel_CookRadianceConfiguration(
datasetsRad[wl],
turbidity,
albedo,
elevation
);
}
return state;
}
void arhosekskymodelstate_free(
ArHosekSkyModelState * state
)
{
free(state);
}
double arhosekskymodel_radiance(
ArHosekSkyModelState * state,
double theta,
double gamma,
double wavelength
)
{
int low_wl = (wavelength - 320.0 ) / 40.0;
double interp = fmod((wavelength - 320.0 ) / 40.0, 1.0);
double val_low =
ArHosekSkyModel_GetRadianceInternal(
state->configs[low_wl],
theta,
gamma
)
* state->radiances[low_wl];
if(interp < 1e-6)
return val_low;
double result =
(1.0 - interp)
* val_low
+ interp
* ArHosekSkyModel_GetRadianceInternal(
state->configs[low_wl+1],
theta,
gamma
)
* state->radiances[low_wl+1];
return result;
}
// xyz version
ArHosekXYZSkyModelState * arhosek_xyz_skymodelstate_alloc_init(
const double turbidity,
const double albedo,
const double elevation
)
{
ArHosekXYZSkyModelState * state = ALLOC(ArHosekXYZSkyModelState);
for( unsigned int channel = 0; channel < 3; ++channel )
{
ArHosekSkyModel_CookConfiguration(
datasetsXYZ[channel],
state->configs[channel],
turbidity,
albedo,
elevation
);
state->radiances[channel] =
ArHosekSkyModel_CookRadianceConfiguration(
datasetsXYZRad[channel],
turbidity,
albedo,
elevation
);
}
return state;
}
void arhosek_xyz_skymodelstate_free(
ArHosekXYZSkyModelState * state
)
{
free(state);
}
double arhosek_xyz_skymodel_radiance(
ArHosekXYZSkyModelState * state,
double theta,
double gamma,
int channel
)
{
return
ArHosekSkyModel_GetRadianceInternal(
state->configs[channel],
theta,
gamma
)
* state->radiances[channel];
}

@ -1,190 +0,0 @@
/*
This source is published under the following 3-clause BSD license.
Copyright (c) 2012, Lukas Hosek and Alexander Wilkie
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* None of the names of the contributors may be used to endorse or promote
products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/* ============================================================================
This file is part of a sample implementation of the analytical skylight model
presented in the SIGGRAPH 2012 paper
"An Analytic Model for Full Spectral Sky-Dome Radiance"
by
Lukas Hosek and Alexander Wilkie
Charles University in Prague, Czech Republic
Version: 1.0, May 11th, 2012
Please visit http://cgg.mff.cuni.cz/projects/SkylightModelling/ to check if
an updated version of this code has been published!
============================================================================ */
/*
This code is taken from ART, a rendering research system written in a
mix of C99 / Objective C. Since ART is not a small system and is intended to
be inter-operable with other libraries, and since C does not have namespaces,
the structures and functions in ART all have to have the somewhat wordy
canonical names that begin with Ar.../ar..., like those seen in this example.
Usage information:
==================
Model initialisation
--------------------
A separate ArHosekSkyModelState has to be maintained for each spectral
band you want to use the model for. So in a renderer with num_channels
bands, you would need something like
ArHosekSkyModelState * skymodel_state[num_channels];
You then have to allocate these states. In the following code snippet, we
assume that "albedo" is defined as
double albedo[num_channels];
with a ground albedo value between [0,1] for each channel. The solar elevation
is given in radians.
for ( unsigned int i = 0; i < num_channels; i++ )
skymodel_state[i] =
arhosekskymodelstate_alloc_init(
turbidity,
albedo[i],
solarElevation
);
Using the model to generate skydome samples
-------------------------------------------
Generating a skydome radiance spectrum "skydome_result" for a given location
on the skydome determined via the angles theta and gamma works as follows:
double skydome_result[num_channels];
for ( unsigned int i = 0; i < num_channels; i++ )
skydome_result[i] =
arhosekskymodel_radiance(
skymodel_state[i],
theta,
gamma,
channel_center[i]
);
The variable "channel_center" is assumed to hold the channel center wavelengths
for each of the num_channels samples of the spectrum we are building.
Cleanup after use
-----------------
After rendering is complete, the content of the sky model states should be
disposed of via
for ( unsigned int i = 0; i < num_channels; i++ )
arhosekskymodelstate_free( skymodel_state[i] );
CIE XYZ Version of the Model
----------------------------
Usage of the CIE XYZ version of the model is exactly the same, except that
num_channels is of course always 3, and that ArHosekXYZSkyModelState and
arhosek_xyz_skymodel_radiance() have to be used instead of their spectral
counterparts.
*/
typedef double ArHosekSkyModelConfiguration[9];
// Spectral version of the model
typedef struct ArHosekSkyModelState
{
ArHosekSkyModelConfiguration configs[11];
double radiances[11];
}
ArHosekSkyModelState;
ArHosekSkyModelState * arhosekskymodelstate_alloc_init(
const double turbidity,
const double albedo,
const double elevation
);
void arhosekskymodelstate_free(
ArHosekSkyModelState * state
);
double arhosekskymodel_radiance(
ArHosekSkyModelState * state,
double theta,
double gamma,
double wavelength
);
// CIE XYZ version
typedef struct ArHosekXYZSkyModelState
{
ArHosekSkyModelConfiguration configs[3];
double radiances[3];
}
ArHosekXYZSkyModelState;
ArHosekXYZSkyModelState * arhosek_xyz_skymodelstate_alloc_init(
const double turbidity,
const double albedo,
const double elevation
);
void arhosek_xyz_skymodelstate_free(
ArHosekXYZSkyModelState * state
);
double arhosek_xyz_skymodel_radiance(
ArHosekXYZSkyModelState * state,
double theta,
double gamma,
int channel
);

File diff suppressed because it is too large Load Diff

@ -1,33 +0,0 @@
The files in this archive are a sample implementation of the analytical
skylight model presented in the SIGGRAPH 2012 paper
"An Analytic Model for Full Spectral Sky-Dome Radiance"
by
Lukas Hosek and Alexander Wilkie
Charles University in Prague, Czech Republic
Version: 1.0, May 11th, 2012
Please visit http://cgg.mff.cuni.cz/projects/SkylightModelling/ to check if
an updated version of this code has been published!
This archive contains the following files:
README.txt This file.
ArHosekSkyModel.h Header file for the reference functions. Their
usage is explained there, and sample code for
calling them is given.
ArHosekSkyModel.c Implementation of the functions.
ArHosekSkyModelData.h Coefficient data.
Please note that the source files are in C99, so that when e.g. compiling this
code with gcc, you have to add the "-std=c99" or "-std=gnu99" flags.
Loading…
Cancel
Save