Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygentiffio.h
Go to the documentation of this file.
00001 /* $Id: tiffio.h,v 1.56.2.4 2010-06-08 18:50:43 bfriesen Exp $ */ 00002 00003 /* 00004 * Copyright (c) 1988-1997 Sam Leffler 00005 * Copyright (c) 1991-1997 Silicon Graphics, Inc. 00006 * 00007 * Permission to use, copy, modify, distribute, and sell this software and 00008 * its documentation for any purpose is hereby granted without fee, provided 00009 * that (i) the above copyright notices and this permission notice appear in 00010 * all copies of the software and related documentation, and (ii) the names of 00011 * Sam Leffler and Silicon Graphics may not be used in any advertising or 00012 * publicity relating to the software without the specific, prior written 00013 * permission of Sam Leffler and Silicon Graphics. 00014 * 00015 * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 00016 * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 00017 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 00018 * 00019 * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 00020 * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 00021 * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 00022 * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 00023 * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 00024 * OF THIS SOFTWARE. 00025 */ 00026 00027 #ifndef _TIFFIO_ 00028 #define _TIFFIO_ 00029 00030 #ifndef __GNUC__ 00031 # define __DLL_IMPORT__ __declspec(dllimport) 00032 # define __DLL_EXPORT__ __declspec(dllexport) 00033 #else 00034 # define __DLL_IMPORT__ __attribute__((dllimport)) extern 00035 # define __DLL_EXPORT__ __attribute__((dllexport)) extern 00036 #endif 00037 00038 #if (defined __WIN32__) || (defined _WIN32) 00039 # ifdef BUILD_LIBTIFF_DLL 00040 # define LIBTIFF_DLL_IMPEXP __DLL_EXPORT__ 00041 # elif defined(LIBTIFF_STATIC) 00042 # define LIBTIFF_DLL_IMPEXP 00043 # elif defined (USE_LIBTIFF_DLL) 00044 # define LIBTIFF_DLL_IMPEXP __DLL_IMPORT__ 00045 # elif defined (USE_LIBTIFF_STATIC) 00046 # define LIBTIFF_DLL_IMPEXP 00047 # else /* assume USE_LIBTIFF_DLL */ 00048 # define LIBTIFF_DLL_IMPEXP __DLL_IMPORT__ 00049 # endif 00050 #else /* __WIN32__ */ 00051 # define LIBTIFF_DLL_IMPEXP 00052 #endif 00053 00054 /* 00055 * TIFF I/O Library Definitions. 00056 */ 00057 #include "tiff.h" 00058 #include "tiffvers.h" 00059 00060 /* 00061 * TIFF is defined as an incomplete type to hide the 00062 * library's internal data structures from clients. 00063 */ 00064 typedef struct tiff TIFF; 00065 00066 /* 00067 * The following typedefs define the intrinsic size of 00068 * data types used in the *exported* interfaces. These 00069 * definitions depend on the proper definition of types 00070 * in tiff.h. Note also that the varargs interface used 00071 * to pass tag types and values uses the types defined in 00072 * tiff.h directly. 00073 * 00074 * NB: ttag_t is unsigned int and not unsigned short because 00075 * ANSI C requires that the type before the ellipsis be a 00076 * promoted type (i.e. one of int, unsigned int, pointer, 00077 * or double) and because we defined pseudo-tags that are 00078 * outside the range of legal Aldus-assigned tags. 00079 * NB: tsize_t is int32 and not uint32 because some functions 00080 * return -1. 00081 * NB: toff_t is not off_t for many reasons; TIFFs max out at 00082 * 32-bit file offsets being the most important, and to ensure 00083 * that it is unsigned, rather than signed. 00084 */ 00085 typedef uint32 ttag_t; /* directory tag */ 00086 typedef uint16 tdir_t; /* directory index */ 00087 typedef uint16 tsample_t; /* sample number */ 00088 typedef uint32 tstrile_t; /* strip or tile number */ 00089 typedef tstrile_t tstrip_t; /* strip number */ 00090 typedef tstrile_t ttile_t; /* tile number */ 00091 typedef int32 tsize_t; /* i/o size in bytes */ 00092 typedef void* tdata_t; /* image data ref */ 00093 typedef uint32 toff_t; /* file offset */ 00094 00095 #if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32)) 00096 #define __WIN32__ 00097 #endif 00098 00099 /* 00100 * On windows you should define USE_WIN32_FILEIO if you are using tif_win32.c 00101 * or AVOID_WIN32_FILEIO if you are using something else (like tif_unix.c). 00102 * 00103 * By default tif_unix.c is assumed. 00104 */ 00105 00106 #if defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows) 00107 # define BINMODE "b" 00108 # if !defined(__CYGWIN) && !defined(AVOID_WIN32_FILEIO) && !defined(USE_WIN32_FILEIO) 00109 # define AVOID_WIN32_FILEIO 00110 # endif 00111 # include <fcntl.h> 00112 # include <io.h> 00113 # ifdef SET_BINARY 00114 # undef SET_BINARY 00115 # endif /* SET_BINARY */ 00116 # define SET_BINARY(f) do {if (!_isatty(f)) _setmode(f,_O_BINARY);} while (0) 00117 #else /* Windows */ 00118 # define BINMODE 00119 # define SET_BINARY(f) (void)0 00120 #endif /* Windows */ 00121 00122 #if defined(USE_WIN32_FILEIO) 00123 # define VC_EXTRALEAN 00124 # include <windows.h> 00125 # ifdef __WIN32__ 00126 DECLARE_HANDLE(thandle_t); /* Win32 file handle */ 00127 # else 00128 typedef HFILE thandle_t; /* client data handle */ 00129 # endif /* __WIN32__ */ 00130 #else 00131 typedef void* thandle_t; /* client data handle */ 00132 #endif /* USE_WIN32_FILEIO */ 00133 00134 /* 00135 * Flags to pass to TIFFPrintDirectory to control 00136 * printing of data structures that are potentially 00137 * very large. Bit-or these flags to enable printing 00138 * multiple items. 00139 */ 00140 #define TIFFPRINT_NONE 0x0 /* no extra info */ 00141 #define TIFFPRINT_STRIPS 0x1 /* strips/tiles info */ 00142 #define TIFFPRINT_CURVES 0x2 /* color/gray response curves */ 00143 #define TIFFPRINT_COLORMAP 0x4 /* colormap */ 00144 #define TIFFPRINT_JPEGQTABLES 0x100 /* JPEG Q matrices */ 00145 #define TIFFPRINT_JPEGACTABLES 0x200 /* JPEG AC tables */ 00146 #define TIFFPRINT_JPEGDCTABLES 0x200 /* JPEG DC tables */ 00147 00148 /* 00149 * Colour conversion stuff 00150 */ 00151 00152 /* reference white */ 00153 #define D65_X0 (95.0470F) 00154 #define D65_Y0 (100.0F) 00155 #define D65_Z0 (108.8827F) 00156 00157 #define D50_X0 (96.4250F) 00158 #define D50_Y0 (100.0F) 00159 #define D50_Z0 (82.4680F) 00160 00161 /* Structure for holding information about a display device. */ 00162 00163 typedef unsigned char TIFFRGBValue; /* 8-bit samples */ 00164 00165 typedef struct { 00166 float d_mat[3][3]; /* XYZ -> luminance matrix */ 00167 float d_YCR; /* Light o/p for reference white */ 00168 float d_YCG; 00169 float d_YCB; 00170 uint32 d_Vrwr; /* Pixel values for ref. white */ 00171 uint32 d_Vrwg; 00172 uint32 d_Vrwb; 00173 float d_Y0R; /* Residual light for black pixel */ 00174 float d_Y0G; 00175 float d_Y0B; 00176 float d_gammaR; /* Gamma values for the three guns */ 00177 float d_gammaG; 00178 float d_gammaB; 00179 } TIFFDisplay; 00180 00181 typedef struct { /* YCbCr->RGB support */ 00182 TIFFRGBValue* clamptab; /* range clamping table */ 00183 int* Cr_r_tab; 00184 int* Cb_b_tab; 00185 int32* Cr_g_tab; 00186 int32* Cb_g_tab; 00187 int32* Y_tab; 00188 } TIFFYCbCrToRGB; 00189 00190 typedef struct { /* CIE Lab 1976->RGB support */ 00191 int range; /* Size of conversion table */ 00192 #define CIELABTORGB_TABLE_RANGE 1500 00193 float rstep, gstep, bstep; 00194 float X0, Y0, Z0; /* Reference white point */ 00195 TIFFDisplay display; 00196 float Yr2r[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yr to r */ 00197 float Yg2g[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yg to g */ 00198 float Yb2b[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yb to b */ 00199 } TIFFCIELabToRGB; 00200 00201 /* 00202 * RGBA-style image support. 00203 */ 00204 typedef struct _TIFFRGBAImage TIFFRGBAImage; 00205 /* 00206 * The image reading and conversion routines invoke 00207 * ``put routines'' to copy/image/whatever tiles of 00208 * raw image data. A default set of routines are 00209 * provided to convert/copy raw image data to 8-bit 00210 * packed ABGR format rasters. Applications can supply 00211 * alternate routines that unpack the data into a 00212 * different format or, for example, unpack the data 00213 * and draw the unpacked raster on the display. 00214 */ 00215 typedef void (*tileContigRoutine) 00216 (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, 00217 unsigned char*); 00218 typedef void (*tileSeparateRoutine) 00219 (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, 00220 unsigned char*, unsigned char*, unsigned char*, unsigned char*); 00221 /* 00222 * RGBA-reader state. 00223 */ 00224 struct _TIFFRGBAImage { 00225 TIFF* tif; /* image handle */ 00226 int stoponerr; /* stop on read error */ 00227 int isContig; /* data is packed/separate */ 00228 int alpha; /* type of alpha data present */ 00229 uint32 width; /* image width */ 00230 uint32 height; /* image height */ 00231 uint16 bitspersample; /* image bits/sample */ 00232 uint16 samplesperpixel; /* image samples/pixel */ 00233 uint16 orientation; /* image orientation */ 00234 uint16 req_orientation; /* requested orientation */ 00235 uint16 photometric; /* image photometric interp */ 00236 uint16* redcmap; /* colormap pallete */ 00237 uint16* greencmap; 00238 uint16* bluecmap; 00239 /* get image data routine */ 00240 int (*get)(TIFFRGBAImage*, uint32*, uint32, uint32); 00241 /* put decoded strip/tile */ 00242 union { 00243 void (*any)(TIFFRGBAImage*); 00244 tileContigRoutine contig; 00245 tileSeparateRoutine separate; 00246 } put; 00247 TIFFRGBValue* Map; /* sample mapping array */ 00248 uint32** BWmap; /* black&white map */ 00249 uint32** PALmap; /* palette image map */ 00250 TIFFYCbCrToRGB* ycbcr; /* YCbCr conversion state */ 00251 TIFFCIELabToRGB* cielab; /* CIE L*a*b conversion state */ 00252 00253 int row_offset; 00254 int col_offset; 00255 }; 00256 00257 /* 00258 * Macros for extracting components from the 00259 * packed ABGR form returned by TIFFReadRGBAImage. 00260 */ 00261 #define TIFFGetR(abgr) ((abgr) & 0xff) 00262 #define TIFFGetG(abgr) (((abgr) >> 8) & 0xff) 00263 #define TIFFGetB(abgr) (((abgr) >> 16) & 0xff) 00264 #define TIFFGetA(abgr) (((abgr) >> 24) & 0xff) 00265 00266 /* 00267 * A CODEC is a software package that implements decoding, 00268 * encoding, or decoding+encoding of a compression algorithm. 00269 * The library provides a collection of builtin codecs. 00270 * More codecs may be registered through calls to the library 00271 * and/or the builtin implementations may be overridden. 00272 */ 00273 typedef int (*TIFFInitMethod)(TIFF*, int); 00274 typedef struct { 00275 char* name; 00276 uint16 scheme; 00277 TIFFInitMethod init; 00278 } TIFFCodec; 00279 00280 #include <stdio.h> 00281 #include <stdarg.h> 00282 00283 /* share internal LogLuv conversion routines? */ 00284 #ifndef LOGLUV_PUBLIC 00285 #define LOGLUV_PUBLIC 1 00286 #endif 00287 00288 #if !defined(__GNUC__) && !defined(__attribute__) 00289 # define __attribute__(x) /*nothing*/ 00290 #endif 00291 00292 #if defined(c_plusplus) || defined(__cplusplus) 00293 extern "C" { 00294 #endif 00295 typedef void (*TIFFErrorHandler)(const char*, const char*, va_list); 00296 typedef void (*TIFFErrorHandlerExt)(thandle_t, const char*, const char*, va_list); 00297 typedef tsize_t (*TIFFReadWriteProc)(thandle_t, tdata_t, tsize_t); 00298 typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int); 00299 typedef int (*TIFFCloseProc)(thandle_t); 00300 typedef toff_t (*TIFFSizeProc)(thandle_t); 00301 typedef int (*TIFFMapFileProc)(thandle_t, tdata_t*, toff_t*); 00302 typedef void (*TIFFUnmapFileProc)(thandle_t, tdata_t, toff_t); 00303 typedef void (*TIFFExtendProc)(TIFF*); 00304 00305 LIBTIFF_DLL_IMPEXP const char* TIFFGetVersion(void); 00306 00307 LIBTIFF_DLL_IMPEXP const TIFFCodec* TIFFFindCODEC(uint16); 00308 LIBTIFF_DLL_IMPEXP TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod); 00309 LIBTIFF_DLL_IMPEXP void TIFFUnRegisterCODEC(TIFFCodec*); 00310 LIBTIFF_DLL_IMPEXP int TIFFIsCODECConfigured(uint16); 00311 LIBTIFF_DLL_IMPEXP TIFFCodec* TIFFGetConfiguredCODECs(void); 00312 00313 /* 00314 * Auxiliary functions. 00315 */ 00316 00317 LIBTIFF_DLL_IMPEXP tdata_t _TIFFmalloc(tsize_t); 00318 LIBTIFF_DLL_IMPEXP tdata_t _TIFFrealloc(tdata_t, tsize_t); 00319 LIBTIFF_DLL_IMPEXP void _TIFFmemset(tdata_t, int, tsize_t); 00320 LIBTIFF_DLL_IMPEXP void _TIFFmemcpy(tdata_t, const tdata_t, tsize_t); 00321 LIBTIFF_DLL_IMPEXP int _TIFFmemcmp(const tdata_t, const tdata_t, tsize_t); 00322 LIBTIFF_DLL_IMPEXP void _TIFFfree(tdata_t); 00323 00324 /* 00325 ** Stuff, related to tag handling and creating custom tags. 00326 */ 00327 LIBTIFF_DLL_IMPEXP int TIFFGetTagListCount( TIFF * ); 00328 LIBTIFF_DLL_IMPEXP ttag_t TIFFGetTagListEntry( TIFF *, int tag_index ); 00329 00330 #define TIFF_ANY TIFF_NOTYPE /* for field descriptor searching */ 00331 #define TIFF_VARIABLE -1 /* marker for variable length tags */ 00332 #define TIFF_SPP -2 /* marker for SamplesPerPixel tags */ 00333 #define TIFF_VARIABLE2 -3 /* marker for uint32 var-length tags */ 00334 00335 #define FIELD_CUSTOM 65 00336 00337 typedef struct { 00338 ttag_t field_tag; /* field's tag */ 00339 short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */ 00340 short field_writecount; /* write count/TIFF_VARIABLE */ 00341 TIFFDataType field_type; /* type of associated data */ 00342 unsigned short field_bit; /* bit in fieldsset bit vector */ 00343 unsigned char field_oktochange; /* if true, can change while writing */ 00344 unsigned char field_passcount; /* if true, pass dir count on set */ 00345 char *field_name; /* ASCII name */ 00346 } TIFFFieldInfo; 00347 00348 typedef struct _TIFFTagValue { 00349 const TIFFFieldInfo *info; 00350 int count; 00351 void *value; 00352 } TIFFTagValue; 00353 00354 LIBTIFF_DLL_IMPEXP void TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], int); 00355 LIBTIFF_DLL_IMPEXP const TIFFFieldInfo* TIFFFindFieldInfo(TIFF*, ttag_t, TIFFDataType); 00356 LIBTIFF_DLL_IMPEXP const TIFFFieldInfo* TIFFFindFieldInfoByName(TIFF* , const char *, 00357 TIFFDataType); 00358 LIBTIFF_DLL_IMPEXP const TIFFFieldInfo* TIFFFieldWithTag(TIFF*, ttag_t); 00359 LIBTIFF_DLL_IMPEXP const TIFFFieldInfo* TIFFFieldWithName(TIFF*, const char *); 00360 00361 typedef int (*TIFFVSetMethod)(TIFF*, ttag_t, va_list); 00362 typedef int (*TIFFVGetMethod)(TIFF*, ttag_t, va_list); 00363 typedef void (*TIFFPrintMethod)(TIFF*, FILE*, long); 00364 00365 typedef struct { 00366 TIFFVSetMethod vsetfield; /* tag set routine */ 00367 TIFFVGetMethod vgetfield; /* tag get routine */ 00368 TIFFPrintMethod printdir; /* directory print routine */ 00369 } TIFFTagMethods; 00370 00371 LIBTIFF_DLL_IMPEXP TIFFTagMethods *TIFFAccessTagMethods( TIFF * ); 00372 LIBTIFF_DLL_IMPEXP void *TIFFGetClientInfo( TIFF *, const char * ); 00373 LIBTIFF_DLL_IMPEXP void TIFFSetClientInfo( TIFF *, void *, const char * ); 00374 00375 LIBTIFF_DLL_IMPEXP void TIFFCleanup(TIFF*); 00376 LIBTIFF_DLL_IMPEXP void TIFFClose(TIFF*); 00377 LIBTIFF_DLL_IMPEXP int TIFFFlush(TIFF*); 00378 LIBTIFF_DLL_IMPEXP int TIFFFlushData(TIFF*); 00379 LIBTIFF_DLL_IMPEXP int TIFFGetField(TIFF*, ttag_t, ...); 00380 LIBTIFF_DLL_IMPEXP int TIFFVGetField(TIFF*, ttag_t, va_list); 00381 LIBTIFF_DLL_IMPEXP int TIFFGetFieldDefaulted(TIFF*, ttag_t, ...); 00382 LIBTIFF_DLL_IMPEXP int TIFFVGetFieldDefaulted(TIFF*, ttag_t, va_list); 00383 LIBTIFF_DLL_IMPEXP int TIFFReadDirectory(TIFF*); 00384 LIBTIFF_DLL_IMPEXP int TIFFReadCustomDirectory(TIFF*, toff_t, const TIFFFieldInfo[], 00385 size_t); 00386 LIBTIFF_DLL_IMPEXP int TIFFReadEXIFDirectory(TIFF*, toff_t); 00387 LIBTIFF_DLL_IMPEXP tsize_t TIFFScanlineSize(TIFF*); 00388 LIBTIFF_DLL_IMPEXP tsize_t TIFFOldScanlineSize(TIFF*); 00389 LIBTIFF_DLL_IMPEXP tsize_t TIFFNewScanlineSize(TIFF*); 00390 LIBTIFF_DLL_IMPEXP tsize_t TIFFRasterScanlineSize(TIFF*); 00391 LIBTIFF_DLL_IMPEXP tsize_t TIFFStripSize(TIFF*); 00392 LIBTIFF_DLL_IMPEXP tsize_t TIFFRawStripSize(TIFF*, tstrip_t); 00393 LIBTIFF_DLL_IMPEXP tsize_t TIFFVStripSize(TIFF*, uint32); 00394 LIBTIFF_DLL_IMPEXP tsize_t TIFFTileRowSize(TIFF*); 00395 LIBTIFF_DLL_IMPEXP tsize_t TIFFTileSize(TIFF*); 00396 LIBTIFF_DLL_IMPEXP tsize_t TIFFVTileSize(TIFF*, uint32); 00397 LIBTIFF_DLL_IMPEXP uint32 TIFFDefaultStripSize(TIFF*, uint32); 00398 LIBTIFF_DLL_IMPEXP void TIFFDefaultTileSize(TIFF*, uint32*, uint32*); 00399 LIBTIFF_DLL_IMPEXP int TIFFFileno(TIFF*); 00400 LIBTIFF_DLL_IMPEXP int TIFFSetFileno(TIFF*, int); 00401 LIBTIFF_DLL_IMPEXP thandle_t TIFFClientdata(TIFF*); 00402 LIBTIFF_DLL_IMPEXP thandle_t TIFFSetClientdata(TIFF*, thandle_t); 00403 LIBTIFF_DLL_IMPEXP int TIFFGetMode(TIFF*); 00404 LIBTIFF_DLL_IMPEXP int TIFFSetMode(TIFF*, int); 00405 LIBTIFF_DLL_IMPEXP int TIFFIsTiled(TIFF*); 00406 LIBTIFF_DLL_IMPEXP int TIFFIsByteSwapped(TIFF*); 00407 LIBTIFF_DLL_IMPEXP int TIFFIsUpSampled(TIFF*); 00408 LIBTIFF_DLL_IMPEXP int TIFFIsMSB2LSB(TIFF*); 00409 LIBTIFF_DLL_IMPEXP int TIFFIsBigEndian(TIFF*); 00410 LIBTIFF_DLL_IMPEXP TIFFReadWriteProc TIFFGetReadProc(TIFF*); 00411 LIBTIFF_DLL_IMPEXP TIFFReadWriteProc TIFFGetWriteProc(TIFF*); 00412 LIBTIFF_DLL_IMPEXP TIFFSeekProc TIFFGetSeekProc(TIFF*); 00413 LIBTIFF_DLL_IMPEXP TIFFCloseProc TIFFGetCloseProc(TIFF*); 00414 LIBTIFF_DLL_IMPEXP TIFFSizeProc TIFFGetSizeProc(TIFF*); 00415 LIBTIFF_DLL_IMPEXP TIFFMapFileProc TIFFGetMapFileProc(TIFF*); 00416 LIBTIFF_DLL_IMPEXP TIFFUnmapFileProc TIFFGetUnmapFileProc(TIFF*); 00417 LIBTIFF_DLL_IMPEXP uint32 TIFFCurrentRow(TIFF*); 00418 LIBTIFF_DLL_IMPEXP tdir_t TIFFCurrentDirectory(TIFF*); 00419 LIBTIFF_DLL_IMPEXP tdir_t TIFFNumberOfDirectories(TIFF*); 00420 LIBTIFF_DLL_IMPEXP uint32 TIFFCurrentDirOffset(TIFF*); 00421 LIBTIFF_DLL_IMPEXP tstrip_t TIFFCurrentStrip(TIFF*); 00422 LIBTIFF_DLL_IMPEXP ttile_t TIFFCurrentTile(TIFF*); 00423 LIBTIFF_DLL_IMPEXP int TIFFReadBufferSetup(TIFF*, tdata_t, tsize_t); 00424 LIBTIFF_DLL_IMPEXP int TIFFWriteBufferSetup(TIFF*, tdata_t, tsize_t); 00425 LIBTIFF_DLL_IMPEXP int TIFFSetupStrips(TIFF *); 00426 LIBTIFF_DLL_IMPEXP int TIFFWriteCheck(TIFF*, int, const char *); 00427 LIBTIFF_DLL_IMPEXP void TIFFFreeDirectory(TIFF*); 00428 LIBTIFF_DLL_IMPEXP int TIFFCreateDirectory(TIFF*); 00429 LIBTIFF_DLL_IMPEXP int TIFFLastDirectory(TIFF*); 00430 LIBTIFF_DLL_IMPEXP int TIFFSetDirectory(TIFF*, tdir_t); 00431 LIBTIFF_DLL_IMPEXP int TIFFSetSubDirectory(TIFF*, uint32); 00432 LIBTIFF_DLL_IMPEXP int TIFFUnlinkDirectory(TIFF*, tdir_t); 00433 LIBTIFF_DLL_IMPEXP int TIFFSetField(TIFF*, ttag_t, ...); 00434 LIBTIFF_DLL_IMPEXP int TIFFVSetField(TIFF*, ttag_t, va_list); 00435 LIBTIFF_DLL_IMPEXP int TIFFWriteDirectory(TIFF *); 00436 LIBTIFF_DLL_IMPEXP int TIFFCheckpointDirectory(TIFF *); 00437 LIBTIFF_DLL_IMPEXP int TIFFRewriteDirectory(TIFF *); 00438 LIBTIFF_DLL_IMPEXP int TIFFReassignTagToIgnore(enum TIFFIgnoreSense, int); 00439 00440 #if defined(c_plusplus) || defined(__cplusplus) 00441 LIBTIFF_DLL_IMPEXP void TIFFPrintDirectory(TIFF*, FILE*, long = 0); 00442 LIBTIFF_DLL_IMPEXP int TIFFReadScanline(TIFF*, tdata_t, uint32, tsample_t = 0); 00443 LIBTIFF_DLL_IMPEXP int TIFFWriteScanline(TIFF*, tdata_t, uint32, tsample_t = 0); 00444 LIBTIFF_DLL_IMPEXP int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0); 00445 LIBTIFF_DLL_IMPEXP int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, 00446 int = ORIENTATION_BOTLEFT, int = 0); 00447 #else 00448 LIBTIFF_DLL_IMPEXP void TIFFPrintDirectory(TIFF*, FILE*, long); 00449 LIBTIFF_DLL_IMPEXP int TIFFReadScanline(TIFF*, tdata_t, uint32, tsample_t); 00450 LIBTIFF_DLL_IMPEXP int TIFFWriteScanline(TIFF*, tdata_t, uint32, tsample_t); 00451 LIBTIFF_DLL_IMPEXP int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int); 00452 LIBTIFF_DLL_IMPEXP int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, int, int); 00453 #endif 00454 00455 LIBTIFF_DLL_IMPEXP int TIFFReadRGBAStrip(TIFF*, tstrip_t, uint32 * ); 00456 LIBTIFF_DLL_IMPEXP int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * ); 00457 LIBTIFF_DLL_IMPEXP int TIFFRGBAImageOK(TIFF*, char [1024]); 00458 LIBTIFF_DLL_IMPEXP int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]); 00459 LIBTIFF_DLL_IMPEXP int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32); 00460 LIBTIFF_DLL_IMPEXP void TIFFRGBAImageEnd(TIFFRGBAImage*); 00461 LIBTIFF_DLL_IMPEXP TIFF* TIFFOpen(const char*, const char*); 00462 # ifdef __WIN32__ 00463 LIBTIFF_DLL_IMPEXP TIFF* TIFFOpenW(const wchar_t*, const char*); 00464 # endif /* __WIN32__ */ 00465 LIBTIFF_DLL_IMPEXP TIFF* TIFFFdOpen(int, const char*, const char*); 00466 LIBTIFF_DLL_IMPEXP TIFF* TIFFClientOpen(const char*, const char*, 00467 thandle_t, 00468 TIFFReadWriteProc, TIFFReadWriteProc, 00469 TIFFSeekProc, TIFFCloseProc, 00470 TIFFSizeProc, 00471 TIFFMapFileProc, TIFFUnmapFileProc); 00472 LIBTIFF_DLL_IMPEXP const char* TIFFFileName(TIFF*); 00473 LIBTIFF_DLL_IMPEXP const char* TIFFSetFileName(TIFF*, const char *); 00474 LIBTIFF_DLL_IMPEXP void TIFFError(const char*, const char*, ...) __attribute__((format (printf,2,3))); 00475 LIBTIFF_DLL_IMPEXP void TIFFErrorExt(thandle_t, const char*, const char*, ...) __attribute__((format (printf,3,4))); 00476 LIBTIFF_DLL_IMPEXP void TIFFWarning(const char*, const char*, ...) __attribute__((format (printf,2,3))); 00477 LIBTIFF_DLL_IMPEXP void TIFFWarningExt(thandle_t, const char*, const char*, ...) __attribute__((format (printf,3,4))); 00478 LIBTIFF_DLL_IMPEXP TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler); 00479 LIBTIFF_DLL_IMPEXP TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt); 00480 LIBTIFF_DLL_IMPEXP TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler); 00481 LIBTIFF_DLL_IMPEXP TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt); 00482 LIBTIFF_DLL_IMPEXP TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc); 00483 LIBTIFF_DLL_IMPEXP ttile_t TIFFComputeTile(TIFF*, uint32, uint32, uint32, tsample_t); 00484 LIBTIFF_DLL_IMPEXP int TIFFCheckTile(TIFF*, uint32, uint32, uint32, tsample_t); 00485 LIBTIFF_DLL_IMPEXP ttile_t TIFFNumberOfTiles(TIFF*); 00486 LIBTIFF_DLL_IMPEXP tsize_t TIFFReadTile(TIFF*, 00487 tdata_t, uint32, uint32, uint32, tsample_t); 00488 LIBTIFF_DLL_IMPEXP tsize_t TIFFWriteTile(TIFF*, 00489 tdata_t, uint32, uint32, uint32, tsample_t); 00490 LIBTIFF_DLL_IMPEXP tstrip_t TIFFComputeStrip(TIFF*, uint32, tsample_t); 00491 LIBTIFF_DLL_IMPEXP tstrip_t TIFFNumberOfStrips(TIFF*); 00492 LIBTIFF_DLL_IMPEXP tsize_t TIFFReadEncodedStrip(TIFF*, tstrip_t, tdata_t, tsize_t); 00493 LIBTIFF_DLL_IMPEXP tsize_t TIFFReadRawStrip(TIFF*, tstrip_t, tdata_t, tsize_t); 00494 LIBTIFF_DLL_IMPEXP tsize_t TIFFReadEncodedTile(TIFF*, ttile_t, tdata_t, tsize_t); 00495 LIBTIFF_DLL_IMPEXP tsize_t TIFFReadRawTile(TIFF*, ttile_t, tdata_t, tsize_t); 00496 LIBTIFF_DLL_IMPEXP tsize_t TIFFWriteEncodedStrip(TIFF*, tstrip_t, tdata_t, tsize_t); 00497 LIBTIFF_DLL_IMPEXP tsize_t TIFFWriteRawStrip(TIFF*, tstrip_t, tdata_t, tsize_t); 00498 LIBTIFF_DLL_IMPEXP tsize_t TIFFWriteEncodedTile(TIFF*, ttile_t, tdata_t, tsize_t); 00499 LIBTIFF_DLL_IMPEXP tsize_t TIFFWriteRawTile(TIFF*, ttile_t, tdata_t, tsize_t); 00500 LIBTIFF_DLL_IMPEXP int TIFFDataWidth(TIFFDataType); /* table of tag datatype widths */ 00501 LIBTIFF_DLL_IMPEXP void TIFFSetWriteOffset(TIFF*, toff_t); 00502 LIBTIFF_DLL_IMPEXP void TIFFSwabShort(uint16*); 00503 LIBTIFF_DLL_IMPEXP void TIFFSwabLong(uint32*); 00504 LIBTIFF_DLL_IMPEXP void TIFFSwabDouble(double*); 00505 LIBTIFF_DLL_IMPEXP void TIFFSwabArrayOfShort(uint16*, unsigned long); 00506 LIBTIFF_DLL_IMPEXP void TIFFSwabArrayOfTriples(uint8*, unsigned long); 00507 LIBTIFF_DLL_IMPEXP void TIFFSwabArrayOfLong(uint32*, unsigned long); 00508 LIBTIFF_DLL_IMPEXP void TIFFSwabArrayOfDouble(double*, unsigned long); 00509 LIBTIFF_DLL_IMPEXP void TIFFReverseBits(unsigned char *, unsigned long); 00510 LIBTIFF_DLL_IMPEXP const unsigned char* TIFFGetBitRevTable(int); 00511 00512 #ifdef LOGLUV_PUBLIC 00513 #define U_NEU 0.210526316 00514 #define V_NEU 0.473684211 00515 #define UVSCALE 410. 00516 LIBTIFF_DLL_IMPEXP double LogL16toY(int); 00517 LIBTIFF_DLL_IMPEXP double LogL10toY(int); 00518 LIBTIFF_DLL_IMPEXP void XYZtoRGB24(float*, uint8*); 00519 LIBTIFF_DLL_IMPEXP int uv_decode(double*, double*, int); 00520 LIBTIFF_DLL_IMPEXP void LogLuv24toXYZ(uint32, float*); 00521 LIBTIFF_DLL_IMPEXP void LogLuv32toXYZ(uint32, float*); 00522 #if defined(c_plusplus) || defined(__cplusplus) 00523 LIBTIFF_DLL_IMPEXP int LogL16fromY(double, int = SGILOGENCODE_NODITHER); 00524 LIBTIFF_DLL_IMPEXP int LogL10fromY(double, int = SGILOGENCODE_NODITHER); 00525 LIBTIFF_DLL_IMPEXP int uv_encode(double, double, int = SGILOGENCODE_NODITHER); 00526 LIBTIFF_DLL_IMPEXP uint32 LogLuv24fromXYZ(float*, int = SGILOGENCODE_NODITHER); 00527 LIBTIFF_DLL_IMPEXP uint32 LogLuv32fromXYZ(float*, int = SGILOGENCODE_NODITHER); 00528 #else 00529 LIBTIFF_DLL_IMPEXP int LogL16fromY(double, int); 00530 LIBTIFF_DLL_IMPEXP int LogL10fromY(double, int); 00531 LIBTIFF_DLL_IMPEXP int uv_encode(double, double, int); 00532 LIBTIFF_DLL_IMPEXP uint32 LogLuv24fromXYZ(float*, int); 00533 LIBTIFF_DLL_IMPEXP uint32 LogLuv32fromXYZ(float*, int); 00534 #endif 00535 #endif /* LOGLUV_PUBLIC */ 00536 00537 LIBTIFF_DLL_IMPEXP int TIFFCIELabToRGBInit(TIFFCIELabToRGB*, TIFFDisplay *, float*); 00538 LIBTIFF_DLL_IMPEXP void TIFFCIELabToXYZ(TIFFCIELabToRGB *, uint32, int32, int32, 00539 float *, float *, float *); 00540 LIBTIFF_DLL_IMPEXP void TIFFXYZToRGB(TIFFCIELabToRGB *, float, float, float, 00541 uint32 *, uint32 *, uint32 *); 00542 00543 LIBTIFF_DLL_IMPEXP int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB*, float*, float*); 00544 LIBTIFF_DLL_IMPEXP void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *, uint32, int32, int32, 00545 uint32 *, uint32 *, uint32 *); 00546 00547 #if defined(c_plusplus) || defined(__cplusplus) 00548 } 00549 #endif 00550 00551 #endif /* _TIFFIO_ */ 00552 00553 /* vim: set ts=8 sts=8 sw=8 noet: */ 00554 /* 00555 * Local Variables: 00556 * mode: c 00557 * c-basic-offset: 8 00558 * fill-column: 78 00559 * End: 00560 */ Generated on Sat May 26 2012 04:31:59 for ReactOS by
1.7.6.1
|