⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tiffio.h

📁 奇趣公司比较新的qt/emd版本
💻 H
📖 第 1 页 / 共 2 页
字号:
/* $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_/* * 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)#  if !defined(__CYGWIN) && !defined(AVOID_WIN32_FILEIO) && !defined(USE_WIN32_FILEIO)#    define AVOID_WIN32_FILEIO#  endif#endif#if defined(USE_WIN32_FILEIO)# define VC_EXTRALEAN# include <windows.h># ifdef __WIN32__DECLARE_HANDLE(thandle_t);	/* Win32 file handle */# elsetypedef	HFILE thandle_t;	/* client data handle */# endif /* __WIN32__ */#elsetypedef	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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -