1 /* $Header: /usr/people/sam/tiff/libtiff/RCS/tiffio.h,v 1.53 92/02/19 14:24:20 sam Exp $ */ 2 3 /* 4 * Copyright (c) 1988, 1989, 1990, 1991, 1992 Sam Leffler 5 * Copyright (c) 1991, 1992 Silicon Graphics, Inc. 6 * 7 * Permission to use, copy, modify, distribute, and sell this software and 8 * its documentation for any purpose is hereby granted without fee, provided 9 * that (i) the above copyright notices and this permission notice appear in 10 * all copies of the software and related documentation, and (ii) the names of 11 * Sam Leffler and Silicon Graphics may not be used in any advertising or 12 * publicity relating to the software without the specific, prior written 13 * permission of Sam Leffler and Silicon Graphics. 14 * 15 * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 16 * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 17 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 18 * 19 * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 20 * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 21 * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 22 * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 23 * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 24 * OF THIS SOFTWARE. 25 */ 26 27 #ifndef _TIFFIO_ 28 #define _TIFFIO_ 29 30 /* 31 * TIFF I/O Library Definitions. 32 */ 33 #include "tiff.h" 34 35 /* 36 * TIFF is defined as an incomplete type to hide the 37 * library's internal data structures from clients. 38 */ 39 typedef struct tiff TIFF; 40 41 #ifndef NULL 42 #define NULL 0 43 #endif 44 45 /* 46 * Flags to pass to TIFFPrintDirectory to control 47 * printing of data structures that are potentially 48 * very large. Bit-or these flags to enable printing 49 * multiple items. 50 */ 51 #define TIFFPRINT_NONE 0x0 /* no extra info */ 52 #define TIFFPRINT_STRIPS 0x1 /* strips/tiles info */ 53 #define TIFFPRINT_CURVES 0x2 /* color/gray response curves */ 54 #define TIFFPRINT_COLORMAP 0x4 /* colormap */ 55 #define TIFFPRINT_JPEGQTABLES 0x100 /* JPEG Q matrices */ 56 #define TIFFPRINT_JPEGACTABLES 0x200 /* JPEG AC tables */ 57 #define TIFFPRINT_JPEGDCTABLES 0x200 /* JPEG DC tables */ 58 59 #if defined(__STDC__) || defined(__EXTENDED__) || USE_CONST 60 extern const char TIFFVersion[]; 61 extern const unsigned char TIFFBitRevTable[256]; 62 extern const unsigned char TIFFNoBitRevTable[256]; 63 #else 64 extern char TIFFVersion[]; 65 extern unsigned char TIFFBitRevTable[256]; 66 extern unsigned char TIFFNoBitRevTable[256]; 67 #endif 68 69 /* 70 * Macros for extracting components from the 71 * packed ABGR form returned by TIFFReadRGBAImage. 72 */ 73 #define TIFFGetR(abgr) ((abgr) & 0xff) 74 #define TIFFGetG(abgr) (((abgr) >> 8) & 0xff) 75 #define TIFFGetB(abgr) (((abgr) >> 16) & 0xff) 76 #define TIFFGetA(abgr) (((abgr) >> 24) & 0xff) 77 78 #if defined(c_plusplus) || defined(__cplusplus) || defined(__STDC__) || defined(__EXTENDED__) || USE_PROTOTYPES 79 #include <stdio.h> 80 #include <stdarg.h> 81 82 typedef void (*TIFFErrorHandler)(char* module, char* fmt, va_list ap); 83 84 #if defined(__cplusplus) 85 extern "C" { 86 #endif 87 extern void TIFFClose(TIFF*); 88 extern int TIFFFlush(TIFF*); 89 extern int TIFFFlushData(TIFF*); 90 extern int TIFFGetField(TIFF*, int, ...); 91 extern int TIFFVGetField(TIFF*, int, va_list); 92 extern int TIFFGetFieldDefaulted(TIFF*, int, ...); 93 extern int TIFFVGetFieldDefaulted(TIFF*, int, va_list); 94 extern int TIFFReadDirectory(TIFF*); 95 extern int TIFFScanlineSize(TIFF*); 96 extern unsigned long TIFFStripSize(TIFF*); 97 extern unsigned long TIFFVStripSize(TIFF*, unsigned long); 98 extern unsigned long TIFFTileRowSize(TIFF*); 99 extern unsigned long TIFFTileSize(TIFF*); 100 extern unsigned long TIFFVTileSize(TIFF*, unsigned long); 101 extern int TIFFFileno(TIFF*); 102 extern int TIFFGetMode(TIFF*); 103 extern int TIFFIsTiled(TIFF*); 104 extern long TIFFCurrentRow(TIFF*); 105 extern int TIFFCurrentDirectory(TIFF*); 106 extern int TIFFCurrentStrip(TIFF*); 107 extern int TIFFCurrentTile(TIFF*); 108 extern int TIFFReadBufferSetup(TIFF*, char*, unsigned); 109 extern int TIFFSetDirectory(TIFF*, int); 110 extern int TIFFSetField(TIFF*, int, ...); 111 extern int TIFFVSetField(TIFF*, int, va_list); 112 extern int TIFFWriteDirectory(TIFF *); 113 #if defined(c_plusplus) || defined(__cplusplus) 114 extern TIFF* TIFFOpen(const char*, const char*); 115 extern TIFF* TIFFFdOpen(const int, const char*, const char*); 116 extern const char* TIFFFileName(TIFF*); 117 extern void TIFFError(const char*, const char*, ...); 118 extern void TIFFWarning(const char*, const char*, ...); 119 extern void TIFFPrintDirectory(TIFF*, FILE*, long = 0); 120 extern int TIFFReadScanline(TIFF*, unsigned char*, unsigned, unsigned = 0); 121 extern int TIFFWriteScanline(TIFF*, unsigned char*, unsigned, unsigned = 0); 122 extern int TIFFReadRGBAImage(TIFF*, unsigned long, unsigned long, unsigned long*, int stop = 0); 123 #else 124 extern TIFF* TIFFOpen(char*, char*); 125 extern TIFF* TIFFFdOpen(int, char*, char*); 126 extern char* TIFFFileName(TIFF*); 127 extern void TIFFError(char*, char*, ...); 128 extern TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler handler); 129 extern void TIFFWarning(char*, char*, ...); 130 extern TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler handler); 131 extern void TIFFPrintDirectory(TIFF*, FILE*, long); 132 extern int TIFFReadScanline(TIFF*, unsigned char*, unsigned, unsigned); 133 extern int TIFFWriteScanline(TIFF*, unsigned char*, unsigned, unsigned); 134 extern int TIFFReadRGBAImage(TIFF*, unsigned long, unsigned long, unsigned long*, int stop); 135 #endif 136 extern unsigned int TIFFComputeTile(TIFF*, unsigned long, unsigned long, unsigned int, unsigned long); 137 extern int TIFFCheckTile(TIFF*, unsigned long, unsigned long, unsigned long, unsigned); 138 extern unsigned int TIFFNumberOfTiles(TIFF*); 139 extern int TIFFReadTile(TIFF*, unsigned char*, unsigned long, unsigned long, unsigned long, unsigned); 140 extern unsigned int TIFFComputeStrip(TIFF*, unsigned long, unsigned int); 141 extern unsigned int TIFFNumberOfStrips(TIFF*); 142 extern int TIFFReadEncodedStrip(TIFF*, unsigned, unsigned char*, unsigned); 143 extern int TIFFReadRawStrip(TIFF*, unsigned, unsigned char*, unsigned); 144 extern int TIFFReadEncodedTile(TIFF*, unsigned, unsigned char*, unsigned); 145 extern int TIFFReadRawTile(TIFF*, unsigned, unsigned char*, unsigned); 146 extern int TIFFWriteEncodedStrip(TIFF*, unsigned, unsigned char*, unsigned); 147 extern int TIFFWriteRawStrip(TIFF*, unsigned, unsigned char*, unsigned); 148 extern int TIFFWriteEncodedTile(TIFF*, unsigned, unsigned char*, unsigned); 149 extern int TIFFWriteRawTile(TIFF*, unsigned, unsigned char*, unsigned); 150 extern int TIFFSwabShort(unsigned short *); 151 extern int TIFFSwabLong(unsigned long *); 152 extern int TIFFSwabArrayOfShort(unsigned short *, int); 153 extern int TIFFSwabArrayOfLong(unsigned long *, int); 154 extern int TIFFReverseBits(unsigned char *, int); 155 #if defined(__cplusplus) 156 } 157 #endif 158 #else 159 typedef void (*TIFFErrorHandler)(); 160 161 extern void TIFFClose(); 162 extern TIFF *TIFFOpen(); 163 extern TIFF *TIFFFdOpen(); 164 extern char* TIFFFileName(); 165 extern int TIFFFileno(); 166 extern int TIFFGetMode(); 167 extern int TIFFIsTiled(); 168 extern unsigned int TIFFComputeTile(); 169 extern long TIFFCurrentRow(); 170 extern int TIFFCurrentDirectory(); 171 extern int TIFFCurrentStrip(); 172 extern int TIFFCurrentTile(); 173 extern void TIFFError(); 174 extern TIFFErrorHandler TIFFSetErrorHandler(); 175 extern int TIFFFlush(); 176 extern int TIFFFlushData(); 177 extern int TIFFGetField(); 178 extern int TIFFVGetField(); 179 extern int TIFFGetFieldDefaulted(); 180 extern int TIFFVGetFieldDefaulted(); 181 extern unsigned int TIFFNumberOfTiles(); 182 extern void TIFFPrintDirectory(); 183 extern int TIFFReadDirectory(); 184 extern int TIFFReadBufferSetup(); 185 extern int TIFFReadScanline(); 186 extern int TIFFReadTile(); 187 extern unsigned int TIFFComputeStrip(); 188 extern unsigned int TIFFNumberOfStrips(); 189 extern int TIFFReadEncodedStrip(); 190 extern int TIFFReadRawStrip(); 191 extern int TIFFReadEncodedTile(); 192 extern int TIFFReadRGBAImage(); 193 extern int TIFFReadRawTile(); 194 extern int TIFFScanlineSize(); 195 extern unsigned long TIFFStripSize(); 196 extern unsigned long TIFFVStripSize(); 197 extern unsigned long TIFFTileRowSize(); 198 extern unsigned long TIFFTileSize(); 199 extern unsigned long TIFFVTileSize(); 200 extern int TIFFSetDirectory(); 201 extern int TIFFSetField(); 202 extern int TIFFVSetField(); 203 extern void TIFFWarning(); 204 extern TIFFErrorHandler TIFFSetWarningHandler(); 205 extern int TIFFWriteDirectory(); 206 extern int TIFFWriteScanline(); 207 extern int TIFFWriteEncodedStrip(); 208 extern int TIFFWriteRawStrip(); 209 extern int TIFFWriteEncodedTile(); 210 extern int TIFFWriteRawTile(); 211 extern int TIFFSwabShort(); 212 extern int TIFFSwabLong(); 213 extern int TIFFSwabArrayOfShort(); 214 extern int TIFFSwabArrayOfLong(); 215 extern int TIFFReverseBits(); 216 extern int TIFFCheckTile(); 217 #endif 218 #endif /* _TIFFIO_ */ 219