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

📄 tif_dir.h

📁 一个国人自己实现图像库的程序(有参考价值)
💻 H
字号:
/* $Header: /cvsroot/osrs/libtiff/libtiff/tif_dir.h,v 1.3 2001/03/02 04:59:52 warmerda 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 _TIFFDIR_#define	_TIFFDIR_/* * ``Library-private'' Directory-related Definitions. *//* * Internal format of a TIFF directory entry. */typedef	struct {#define	FIELD_SETLONGS	3	/* bit vector of fields that are set */	u_long	td_fieldsset[FIELD_SETLONGS];	uint32	td_imagewidth, td_imagelength, td_imagedepth;	uint32	td_tilewidth, td_tilelength, td_tiledepth;	uint32	td_subfiletype;	uint16	td_bitspersample;	uint16	td_sampleformat;	uint16	td_compression;	uint16	td_photometric;	uint16	td_threshholding;	uint16	td_fillorder;	uint16	td_orientation;	uint16	td_samplesperpixel;	uint32	td_rowsperstrip;	uint16	td_minsamplevalue, td_maxsamplevalue;	double	td_sminsamplevalue, td_smaxsamplevalue;	float	td_xresolution, td_yresolution;	uint16	td_resolutionunit;	uint16	td_planarconfig;	float	td_xposition, td_yposition;	uint16	td_pagenumber[2];	uint16*	td_colormap[3];	uint16	td_halftonehints[2];	uint16	td_extrasamples;	uint16*	td_sampleinfo;	double	td_stonits;	char*	td_documentname;	char*	td_artist;	char*	td_datetime;	char*	td_hostcomputer;	char*	td_imagedescription;	char*	td_make;	char*	td_model;	char*	td_software;        char*   td_copyright;	char*	td_pagename;	tstrip_t td_stripsperimage;	tstrip_t td_nstrips;		/* size of offset & bytecount arrays */	uint32*	td_stripoffset;	uint32*	td_stripbytecount;#if SUBIFD_SUPPORT	uint16	td_nsubifd;	uint32*	td_subifd;#endif#ifdef YCBCR_SUPPORT	float*	td_ycbcrcoeffs;	uint16	td_ycbcrsubsampling[2];	uint16	td_ycbcrpositioning;#endif#ifdef COLORIMETRY_SUPPORT	float*	td_whitepoint;	float*	td_primarychromas;	float*	td_refblackwhite;	uint16*	td_transferfunction[3];#endif#ifdef CMYK_SUPPORT	uint16	td_inkset;	uint16	td_ninks;	uint16	td_dotrange[2];	int	td_inknameslen;	char*	td_inknames;	char*	td_targetprinter;#endif#ifdef ICC_SUPPORT	uint32	td_profileLength;	void	*td_profileData;#endif#ifdef PHOTOSHOP_SUPPORT	uint32	td_photoshopLength;	void	*td_photoshopData;#endif#ifdef IPTC_SUPPORT	uint32	td_richtiffiptcLength;	void	*td_richtiffiptcData;#endif        /* Begin Pixar Tag values. */        uint32	td_imagefullwidth, td_imagefulllength; 	char*	td_textureformat; 	char*	td_wrapmodes; 	float	td_fovcot; 	float*	td_matrixWorldToScreen; 	float*	td_matrixWorldToCamera; 	/* End Pixar Tag Values. */} TIFFDirectory;/* * Field flags used to indicate fields that have * been set in a directory, and to reference fields * when manipulating a directory. *//* * FIELD_IGNORE is used to signify tags that are to * be processed but otherwise ignored.  This permits * antiquated tags to be quietly read and discarded. * Note that a bit *is* allocated for ignored tags; * this is understood by the directory reading logic * which uses this fact to avoid special-case handling */ #define	FIELD_IGNORE			0/* multi-item fields */#define	FIELD_IMAGEDIMENSIONS		1#define FIELD_TILEDIMENSIONS		2#define	FIELD_RESOLUTION		3#define	FIELD_POSITION			4/* single-item fields */#define	FIELD_SUBFILETYPE		5#define	FIELD_BITSPERSAMPLE		6#define	FIELD_COMPRESSION		7#define	FIELD_PHOTOMETRIC		8#define	FIELD_THRESHHOLDING		9#define	FIELD_FILLORDER			10#define	FIELD_DOCUMENTNAME		11#define	FIELD_IMAGEDESCRIPTION		12#define	FIELD_MAKE			13#define	FIELD_MODEL			14#define	FIELD_ORIENTATION		15#define	FIELD_SAMPLESPERPIXEL		16#define	FIELD_ROWSPERSTRIP		17#define	FIELD_MINSAMPLEVALUE		18#define	FIELD_MAXSAMPLEVALUE		19#define	FIELD_PLANARCONFIG		20#define	FIELD_PAGENAME			21#define	FIELD_RESOLUTIONUNIT		22#define	FIELD_PAGENUMBER		23#define	FIELD_STRIPBYTECOUNTS		24#define	FIELD_STRIPOFFSETS		25#define	FIELD_COLORMAP			26#define FIELD_ARTIST			27#define FIELD_DATETIME			28#define FIELD_HOSTCOMPUTER		29#define FIELD_SOFTWARE			30#define	FIELD_EXTRASAMPLES		31#define FIELD_SAMPLEFORMAT		32#define	FIELD_SMINSAMPLEVALUE		33#define	FIELD_SMAXSAMPLEVALUE		34#define FIELD_IMAGEDEPTH		35#define FIELD_TILEDEPTH			36#define	FIELD_HALFTONEHINTS		37#define FIELD_YCBCRCOEFFICIENTS		38#define FIELD_YCBCRSUBSAMPLING		39#define FIELD_YCBCRPOSITIONING		40#define	FIELD_REFBLACKWHITE		41#define	FIELD_WHITEPOINT		42#define	FIELD_PRIMARYCHROMAS		43#define	FIELD_TRANSFERFUNCTION		44#define	FIELD_INKSET			45#define	FIELD_INKNAMES			46#define	FIELD_DOTRANGE			47#define	FIELD_TARGETPRINTER		48#define	FIELD_SUBIFD			49#define	FIELD_NUMBEROFINKS		50#define FIELD_ICCPROFILE		51#define FIELD_PHOTOSHOP			52#define FIELD_RICHTIFFIPTC		53#define FIELD_STONITS			54/* Begin PIXAR */#define	FIELD_IMAGEFULLWIDTH		55#define	FIELD_IMAGEFULLLENGTH		56#define FIELD_TEXTUREFORMAT		57#define FIELD_WRAPMODES			58#define FIELD_FOVCOT			59#define FIELD_MATRIX_WORLDTOSCREEN	60#define FIELD_MATRIX_WORLDTOCAMERA	61#define FIELD_COPYRIGHT			62/* end of support for well-known tags; codec-private tags follow */#define	FIELD_CODEC			63	/* base of codec-private tags *//* * Pseudo-tags don't normally need field bits since they * are not written to an output file (by definition). * The library also has express logic to always query a * codec for a pseudo-tag so allocating a field bit for * one is a waste.   If codec wants to promote the notion * of a pseudo-tag being ``set'' or ``unset'' then it can * do using internal state flags without polluting the * field bit space defined for real tags. */#define	FIELD_PSEUDO			0#define	FIELD_LAST			(32*FIELD_SETLONGS-1)#define	TIFFExtractData(tif, type, v) \    ((uint32) ((tif)->tif_header.tiff_magic == TIFF_BIGENDIAN ? \        ((v) >> (tif)->tif_typeshift[type]) & (tif)->tif_typemask[type] : \	(v) & (tif)->tif_typemask[type]))#define	TIFFInsertData(tif, type, v) \    ((uint32) ((tif)->tif_header.tiff_magic == TIFF_BIGENDIAN ? \        ((v) & (tif)->tif_typemask[type]) << (tif)->tif_typeshift[type] : \	(v) & (tif)->tif_typemask[type]))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 */	u_short	field_bit;		/* bit in fieldsset bit vector */	u_char	field_oktochange;	/* if true, can change while writing */	u_char	field_passcount;	/* if true, pass dir count on set */	char	*field_name;		/* ASCII name */} TIFFFieldInfo;#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 */extern	const int tiffDataWidth[];	/* table of tag datatype widths */#define BITn(n)				(((u_long)1L)<<((n)&0x1f)) #define BITFIELDn(tif, n)		((tif)->tif_dir.td_fieldsset[(n)/32]) #define TIFFFieldSet(tif, field)	(BITFIELDn(tif, field) & BITn(field)) #define TIFFSetFieldBit(tif, field)	(BITFIELDn(tif, field) |= BITn(field))#define TIFFClrFieldBit(tif, field)	(BITFIELDn(tif, field) &= ~BITn(field))#define	FieldSet(fields, f)		(fields[(f)/32] & BITn(f))#define	ResetFieldBit(fields, f)	(fields[(f)/32] &= ~BITn(f))#if defined(__cplusplus)extern "C" {#endifextern	void _TIFFSetupFieldInfo(TIFF*);extern	void _TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], int);extern	void _TIFFPrintFieldInfo(TIFF*, FILE*);extern	const TIFFFieldInfo* _TIFFFindFieldInfo(TIFF*, ttag_t, TIFFDataType);extern	const TIFFFieldInfo* _TIFFFieldWithTag(TIFF*, ttag_t);extern	TIFFDataType _TIFFSampleToTagType(TIFF*);#if defined(__cplusplus)}#endif#endif /* _TIFFDIR_ */

⌨️ 快捷键说明

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