亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? xtif_dir.c

?? tiff格式傳真源碼例子
?? C
字號:
/* * xtif_dir.c * * Extended TIFF Directory Tag Support. * *  You may use this file as a template to add your own *  extended tags to the library. Only the parts of the code *  marked with "XXX" require modification. Three example tags *  are shown; you should replace them with your own. * *  Author: Niles D. Ritter */ #include "xtiffiop.h"#include <stdio.h>/*  Tiff info structure. * *     Entry format: *        { TAGNUMBER, ReadCount, WriteCount, DataType, FIELDNUM,  *          OkToChange, PassDirCountOnSet, AsciiName } * *     For ReadCount, WriteCount, -1 = unknown; used for mult-valued *         tags and ASCII. */static const TIFFFieldInfo xtiffFieldInfo[] = {    /* XXX Replace these example tags with your own extended tags */    { TIFFTAG_EXAMPLE_MULTI,	-1,-1, TIFF_DOUBLE,	FIELD_EXAMPLE_MULTI,      TRUE,	TRUE,	"MyMultivaluedTag" },    { TIFFTAG_EXAMPLE_SINGLE,	 1, 1, TIFF_LONG,	FIELD_EXAMPLE_SINGLE,      TRUE,	FALSE,	"MySingleLongTag" },    { TIFFTAG_EXAMPLE_ASCII,	-1,-1, TIFF_ASCII,	FIELD_EXAMPLE_ASCII,      TRUE,	FALSE,	"MyAsciiTag" },};#define	N(a)	(sizeof (a) / sizeof (a[0]))static void_XTIFFPrintDirectory(TIFF* tif, FILE* fd, long flags){	xtiff *xt = XTIFFDIR(tif);	XTIFFDirectory *xd = &xt->xtif_dir;	int i,num;	/* call the inherited method */	if (PARENT(xt,printdir))		(PARENT(xt,printdir))(tif,fd,flags);	/* XXX Add field printing here. Replace the three example         *    tags implemented below with your own.         */	fprintf(fd,"--My Example Tags--\n");	/* Our first example tag may have a lot of values, so we         * will only print them out if the TIFFPRINT_MYMULTIDOUBLES         * flag is passed into the print method.         */	if (TIFFFieldSet(tif,FIELD_EXAMPLE_MULTI))	{		fprintf(fd, "  My Multi-Valued Doubles:");		if (flags & TIFFPRINT_MYMULTIDOUBLES) 		{			double *value = xd->xd_example_multi;				num = xd->xd_num_multi;			fprintf(fd,"(");			for (i=0;i<num;i++) fprintf(fd, " %lg", *value++);			fprintf(fd,")\n");		} else			fprintf(fd, "(present)\n");	}	if (TIFFFieldSet(tif,FIELD_EXAMPLE_SINGLE))	{		fprintf(fd, "  My Single Long Tag:  %lu\n", xd->xd_example_single);	}	if (TIFFFieldSet(tif,FIELD_EXAMPLE_ASCII))	{		_TIFFprintAsciiTag(fd,"My ASCII Tag",			 xd->xd_example_ascii);	}}static int_XTIFFVSetField(TIFF* tif, ttag_t tag, va_list ap){	xtiff *xt = XTIFFDIR(tif);	XTIFFDirectory* xd = &xt->xtif_dir;	int status = 1;	uint32 v32=0;	int i=0, v=0;	va_list ap1 = ap;	/* va_start is called by the calling routine */		switch (tag) {		/*                  * XXX put your extended tags here; replace the implemented                 *     example tags with your own.                  */	case TIFFTAG_EXAMPLE_MULTI:		/* multi-valued tags need to store the count as well */		xd->xd_num_multi = (uint16) va_arg(ap, int);		_TIFFsetDoubleArray(&xd->xd_example_multi, va_arg(ap, double*),			(long) xd->xd_num_multi);		break;	case TIFFTAG_EXAMPLE_SINGLE:		xd->xd_example_single = va_arg(ap, uint32);		break;	case TIFFTAG_EXAMPLE_ASCII:		_TIFFsetString(&xd->xd_example_ascii, va_arg(ap, char*));		break;	default:		/* call the inherited method */		return (PARENT(xt,vsetfield))(tif,tag,ap);		break;	}	if (status) {		/* we have to override the print method here, 		 * after the compression tags have gotten to it.		 * This makes sense because the only time we would		 * need the extended print method is if an extended		 * tag is set by the reader.		 */		if (!(xt->xtif_flags & XTIFFP_PRINT))		{	        	PARENT(xt,printdir) =  TIFFMEMBER(tif,printdir);      		  	TIFFMEMBER(tif,printdir) = _XTIFFPrintDirectory;			xt->xtif_flags |= XTIFFP_PRINT;		}		TIFFSetFieldBit(tif, _TIFFFieldWithTag(tif, tag)->field_bit);		tif->tif_flags |= TIFF_DIRTYDIRECT;	}	va_end(ap);	return (status);badvalue:	TIFFError(tif->tif_name, "%d: Bad value for \"%s\"", v,	    _TIFFFieldWithTag(tif, tag)->field_name);	va_end(ap);	return (0);badvalue32:	TIFFError(tif->tif_name, "%ld: Bad value for \"%s\"", v32,	    _TIFFFieldWithTag(tif, tag)->field_name);	va_end(ap);	return (0);}static int_XTIFFVGetField(TIFF* tif, ttag_t tag, va_list ap){	xtiff *xt = XTIFFDIR(tif);	XTIFFDirectory* xd = &xt->xtif_dir;	switch (tag) {		/*                  * XXX put your extended tags here; replace the implemented                 *     example tags with your own.                 */	case TIFFTAG_EXAMPLE_MULTI:		*va_arg(ap, uint16*) = xd->xd_num_multi;		*va_arg(ap, double**) = xd->xd_example_multi;		break;	case TIFFTAG_EXAMPLE_ASCII:		*va_arg(ap, char**) = xd->xd_example_ascii;		break;	case TIFFTAG_EXAMPLE_SINGLE:		*va_arg(ap, uint32*) = xd->xd_example_single;		break;	default:		/* return inherited method */		return (PARENT(xt,vgetfield))(tif,tag,ap);		break;	}	return (1);}#define	CleanupField(member) {		\    if (xd->member) {			\	_TIFFfree(xd->member);		\	xd->member = 0;			\    }					\}/* * Release storage associated with a directory. */static void_XTIFFFreeDirectory(xtiff* xt){	XTIFFDirectory* xd = &xt->xtif_dir;	/* 	 *  XXX - Purge all Your allocated memory except	 *  for the xtiff directory itself. This includes	 *  all fields that require a _TIFFsetXXX call in	 *  _XTIFFVSetField().	 */		CleanupField(xd_example_multi);	CleanupField(xd_example_ascii);	}#undef CleanupFieldstatic void _XTIFFLocalDefaultDirectory(TIFF *tif){	xtiff *xt = XTIFFDIR(tif);	XTIFFDirectory* xd = &xt->xtif_dir;	/* Install the extended Tag field info */	_TIFFMergeFieldInfo(tif, xtiffFieldInfo, N(xtiffFieldInfo));	/*	 *  free up any dynamically allocated arrays	 *  before the new directory is read in.	 */	 	_XTIFFFreeDirectory(xt);		_TIFFmemset(xt,0,sizeof(xtiff));	/* Override the tag access methods */	PARENT(xt,vsetfield) =  TIFFMEMBER(tif,vsetfield);	TIFFMEMBER(tif,vsetfield) = _XTIFFVSetField;	PARENT(xt,vgetfield) =  TIFFMEMBER(tif,vgetfield);	TIFFMEMBER(tif,vgetfield) = _XTIFFVGetField;	/* 	 * XXX Set up any default values here.	 */		xd->xd_example_single = 234;}/********************************************************************** *    Nothing below this line should need to be changed. **********************************************************************/static TIFFExtendProc _ParentExtender;/* *  This is the callback procedure, and is *  called by the DefaultDirectory method *  every time a new TIFF directory is opened. */static void_XTIFFDefaultDirectory(TIFF *tif){	xtiff *xt;		/* Allocate Directory Structure if first time, and install it */	if (!(tif->tif_flags & XTIFF_INITIALIZED))	{		xt = _TIFFmalloc(sizeof(xtiff));		if (!xt)		{			/* handle memory allocation failure here ! */			return;		}		_TIFFmemset(xt,0,sizeof(xtiff));		/*		 * Install into TIFF structure.		 */		TIFFMEMBER(tif,clientdir) = (tidata_t)xt;		tif->tif_flags |= XTIFF_INITIALIZED; /* dont do this again! */	}		/* set up our own defaults */	_XTIFFLocalDefaultDirectory(tif);	/* Since an XTIFF client module may have overridden	 * the default directory method, we call it now to	 * allow it to set up the rest of its own methods.         */	if (_ParentExtender) 		(*_ParentExtender)(tif);}/* *  XTIFF Initializer -- sets up the callback *   procedure for the TIFF module. */staticvoid _XTIFFInitialize(void){	static first_time=1;		if (! first_time) return; /* Been there. Done that. */	first_time = 0;		/* Grab the inherited method and install */	_ParentExtender = TIFFSetTagExtender(_XTIFFDefaultDirectory);}/* * Public File I/O Routines. */TIFF*XTIFFOpen(const char* name, const char* mode){	/* Set up the callback */	_XTIFFInitialize();			/* Open the file; the callback will set everything up	 */	return TIFFOpen(name, mode);}TIFF*XTIFFFdOpen(int fd, const char* name, const char* mode){	/* Set up the callback */	_XTIFFInitialize();		/* Open the file; the callback will set everything up	 */	return TIFFFdOpen(fd, name, mode);}voidXTIFFClose(TIFF *tif){	xtiff *xt = XTIFFDIR(tif);		/* call inherited function first */	TIFFClose(tif);		/* Free up extended allocated memory */	_XTIFFFreeDirectory(xt);	_TIFFfree(xt);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲女与黑人做爰| 中文字幕不卡三区| 国产河南妇女毛片精品久久久| 国产精品免费网站在线观看| 69堂精品视频| 一本一本久久a久久精品综合麻豆| 另类小说一区二区三区| 亚洲欧美电影院| 久久久久久久久久久久久久久99| 欧美三级在线看| www.日韩在线| 国产精品一区二区91| 无码av中文一区二区三区桃花岛| 国产精品动漫网站| 精品嫩草影院久久| 欧美日韩国产美| 99久久伊人久久99| 国产xxx精品视频大全| 日本vs亚洲vs韩国一区三区 | 欧美国产激情二区三区| 日韩欧美一区二区在线视频| 色婷婷国产精品久久包臀| 国产精品自在在线| 精品制服美女久久| 一区二区三区精密机械公司| 国产精品美女久久久久aⅴ| 久久久国际精品| 2023国产精华国产精品| 91精品国产aⅴ一区二区| 欧美日韩一区中文字幕| 91黄色激情网站| 91日韩在线专区| 不卡视频免费播放| a4yy欧美一区二区三区| 成人小视频免费在线观看| 国产在线精品一区二区不卡了| 青青草成人在线观看| 视频在线在亚洲| 日韩av电影一区| 免费在线观看成人| 奇米精品一区二区三区在线观看| 日韩电影一区二区三区四区| 三级不卡在线观看| 水野朝阳av一区二区三区| 偷拍一区二区三区四区| 日韩激情一区二区| 麻豆成人综合网| 国产精品影视在线观看| 国产福利91精品| jlzzjlzz欧美大全| 久久欧美一区二区| 久久久不卡网国产精品一区| 久久久久久久久久电影| 亚洲国产成人自拍| 亚洲精选视频在线| 亚洲已满18点击进入久久| 一二三四区精品视频| 亚洲一区二区视频在线观看| 亚洲国产毛片aaaaa无费看| 亚洲国产三级在线| 奇米影视在线99精品| 国产精品99精品久久免费| 成人av手机在线观看| 91国在线观看| 91精品午夜视频| 久久久久久免费网| 亚洲欧美日韩国产综合| 午夜电影网亚洲视频| 韩国av一区二区三区四区| 成人免费视频国产在线观看| 色婷婷av一区二区三区大白胸 | 日韩国产一区二| 美腿丝袜亚洲色图| 国产成人亚洲综合a∨婷婷图片| 成a人片国产精品| 欧美日本一道本| 久久一留热品黄| 最新国产成人在线观看| 日产欧产美韩系列久久99| 国产91露脸合集magnet| 欧美亚洲综合一区| 日韩精品中文字幕在线不卡尤物| 欧美国产精品专区| 亚洲一区二区在线免费看| 蜜臀av性久久久久av蜜臀妖精| 国产麻豆视频精品| 在线观看国产91| 久久久一区二区三区捆绑**| 最近日韩中文字幕| 美女在线视频一区| 91一区二区在线| 日韩精品一区二区三区三区免费| 国产精品对白交换视频| 麻豆专区一区二区三区四区五区| av成人动漫在线观看| 欧美大白屁股肥臀xxxxxx| 亚洲欧洲国产日韩| 国内一区二区视频| 欧美精选一区二区| 自拍偷自拍亚洲精品播放| 久久精品99久久久| 精品视频在线视频| 国产精品少妇自拍| 免费看黄色91| 欧美三级日韩三级国产三级| 国产精品美女www爽爽爽| 免费成人av资源网| 精品污污网站免费看| 亚洲品质自拍视频网站| 国产伦精品一区二区三区视频青涩| 欧美性色黄大片手机版| 国产精品剧情在线亚洲| 国产专区欧美精品| 欧美肥妇毛茸茸| 亚洲欧美日韩系列| 成人精品一区二区三区中文字幕| 日韩美女一区二区三区四区| 亚洲一区二区三区小说| 99视频精品全部免费在线| 久久久91精品国产一区二区三区| 日韩在线卡一卡二| 欧美日韩在线三级| 一个色在线综合| 色婷婷综合久久久| 亚洲色图欧美在线| 岛国精品一区二区| 日韩午夜激情视频| 青青草91视频| 884aa四虎影成人精品一区| 亚洲自拍另类综合| 欧美视频一区在线观看| 亚洲精品中文字幕乱码三区| www.视频一区| 亚洲素人一区二区| 91丝袜美女网| 一区二区不卡在线播放| 色域天天综合网| 亚洲摸摸操操av| 在线视频中文字幕一区二区| 亚洲码国产岛国毛片在线| 91香蕉视频mp4| 亚洲激情在线播放| 在线免费观看一区| 亚洲成av人片一区二区梦乃| 欧美日韩国产免费一区二区| 日韩精品欧美精品| 日韩一区二区高清| 激情六月婷婷综合| 国产欧美一区二区三区在线老狼| 国产精品一区二区无线| 欧美韩国日本一区| 91亚洲精品久久久蜜桃网站| 亚洲精品国产成人久久av盗摄| 在线视频一区二区三| 亚洲成人黄色小说| 日韩一区国产二区欧美三区| 精品一区二区三区在线播放视频| 国产亚洲欧美中文| 成人国产电影网| 亚洲一区中文日韩| 7799精品视频| 国产成人午夜精品5599| 椎名由奈av一区二区三区| 欧美日本在线一区| 激情五月播播久久久精品| 国产精品丝袜一区| 欧美体内she精高潮| 九色porny丨国产精品| 国产精品欧美一区喷水| 欧美色精品在线视频| 国产在线国偷精品产拍免费yy| 国产精品电影院| 欧美一区二区三区在线观看 | jizzjizzjizz欧美| 一区二区三区国产| 日韩欧美不卡在线观看视频| 粉嫩欧美一区二区三区高清影视| 亚洲精品美国一| 欧美成人一区二区三区在线观看| 国产91丝袜在线观看| 亚洲不卡在线观看| 久久久久久99久久久精品网站| 91蝌蚪porny| 久久超级碰视频| 亚洲精品国产精华液| 精品国产乱码久久久久久蜜臀 | www.在线欧美| 美女视频第一区二区三区免费观看网站| 国产欧美一区二区精品婷婷| 欧美三电影在线| 国产成人日日夜夜| 一区二区三区中文免费| 日韩免费视频一区二区| 在线一区二区观看| 国产一区二区三区四区五区入口 | 一区二区三区四区不卡在线| 日韩欧美国产精品一区| 色综合色狠狠天天综合色| 国产真实乱子伦精品视频| 午夜在线成人av|