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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tif_getimage.c

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? C
?? 第 1 頁 / 共 5 頁
字號:
			if (img->req_orientation == ORIENTATION_TOPRIGHT ||			    img->req_orientation == ORIENTATION_RIGHTTOP)				return FLIP_HORIZONTALLY;			else if (img->req_orientation == ORIENTATION_BOTRIGHT ||			    img->req_orientation == ORIENTATION_RIGHTBOT)				return FLIP_HORIZONTALLY | FLIP_VERTICALLY;			else if (img->req_orientation == ORIENTATION_BOTLEFT ||			    img->req_orientation == ORIENTATION_LEFTBOT)				return FLIP_VERTICALLY;			else				return 0;		case ORIENTATION_TOPRIGHT:		case ORIENTATION_RIGHTTOP:			if (img->req_orientation == ORIENTATION_TOPLEFT ||			    img->req_orientation == ORIENTATION_LEFTTOP)				return FLIP_HORIZONTALLY;			else if (img->req_orientation == ORIENTATION_BOTRIGHT ||			    img->req_orientation == ORIENTATION_RIGHTBOT)				return FLIP_VERTICALLY;			else if (img->req_orientation == ORIENTATION_BOTLEFT ||			    img->req_orientation == ORIENTATION_LEFTBOT)				return FLIP_HORIZONTALLY | FLIP_VERTICALLY;			else				return 0;		case ORIENTATION_BOTRIGHT:		case ORIENTATION_RIGHTBOT:			if (img->req_orientation == ORIENTATION_TOPLEFT ||			    img->req_orientation == ORIENTATION_LEFTTOP)				return FLIP_HORIZONTALLY | FLIP_VERTICALLY;			else if (img->req_orientation == ORIENTATION_TOPRIGHT ||			    img->req_orientation == ORIENTATION_RIGHTTOP)				return FLIP_VERTICALLY;			else if (img->req_orientation == ORIENTATION_BOTLEFT ||			    img->req_orientation == ORIENTATION_LEFTBOT)				return FLIP_HORIZONTALLY;			else				return 0;		case ORIENTATION_BOTLEFT:		case ORIENTATION_LEFTBOT:			if (img->req_orientation == ORIENTATION_TOPLEFT ||			    img->req_orientation == ORIENTATION_LEFTTOP)				return FLIP_VERTICALLY;			else if (img->req_orientation == ORIENTATION_TOPRIGHT ||			    img->req_orientation == ORIENTATION_RIGHTTOP)				return FLIP_HORIZONTALLY | FLIP_VERTICALLY;			else if (img->req_orientation == ORIENTATION_BOTRIGHT ||			    img->req_orientation == ORIENTATION_RIGHTBOT)				return FLIP_HORIZONTALLY;			else				return 0;		default:	/* NOTREACHED */			return 0;	}}/* * Get an tile-organized image that has *	PlanarConfiguration contiguous if SamplesPerPixel > 1 * or *	SamplesPerPixel == 1 */	static intgtTileContig(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h){    TIFF* tif = img->tif;    tileContigRoutine put = img->put.contig;    uint32 col, row, y, rowstoread;    uint32 pos;    uint32 tw, th;    unsigned char* buf;    int32 fromskew, toskew;    uint32 nrow;    int ret = 1, flip;    buf = (unsigned char*) _TIFFmalloc(TIFFTileSize(tif));    if (buf == 0) {		TIFFErrorExt(tif->tif_clientdata, TIFFFileName(tif), "No space for tile buffer");		return (0);    }    _TIFFmemset(buf, 0, TIFFTileSize(tif));    TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tw);    TIFFGetField(tif, TIFFTAG_TILELENGTH, &th);    flip = setorientation(img);    if (flip & FLIP_VERTICALLY) {	    y = h - 1;	    toskew = -(int32)(tw + w);    }    else {	    y = 0;	    toskew = -(int32)(tw - w);    }         for (row = 0; row < h; row += nrow)    {        rowstoread = th - (row + img->row_offset) % th;    	nrow = (row + rowstoread > h ? h - row : rowstoread);	for (col = 0; col < w; col += tw)         {            if (TIFFReadTile(tif, buf, col+img->col_offset,                             row+img->row_offset, 0, 0) < 0 && img->stoponerr)            {                ret = 0;                break;            }	                pos = ((row+img->row_offset) % th) * TIFFTileRowSize(tif);    	    if (col + tw > w)             {                /*                 * Tile is clipped horizontally.  Calculate                 * visible portion and skewing factors.                 */                uint32 npix = w - col;                fromskew = tw - npix;                (*put)(img, raster+y*w+col, col, y,                       npix, nrow, fromskew, toskew + fromskew, buf + pos);            }            else             {                (*put)(img, raster+y*w+col, col, y, tw, nrow, 0, toskew, buf + pos);            }        }        y += (flip & FLIP_VERTICALLY ? -(int32) nrow : (int32) nrow);    }    _TIFFfree(buf);    if (flip & FLIP_HORIZONTALLY) {	    uint32 line;	    for (line = 0; line < h; line++) {		    uint32 *left = raster + (line * w);		    uint32 *right = left + w - 1;		    		    while ( left < right ) {			    uint32 temp = *left;			    *left = *right;			    *right = temp;			    left++, right--;		    }	    }    }    return (ret);}/* * Get an tile-organized image that has *	 SamplesPerPixel > 1 *	 PlanarConfiguration separated * We assume that all such images are RGB. */	static intgtTileSeparate(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h){	TIFF* tif = img->tif;	tileSeparateRoutine put = img->put.separate;	uint32 col, row, y, rowstoread;	uint32 pos;	uint32 tw, th;	unsigned char* buf;	unsigned char* p0;	unsigned char* p1;	unsigned char* p2;	unsigned char* pa;	tsize_t tilesize;	int32 fromskew, toskew;	int alpha = img->alpha;	uint32 nrow;	int ret = 1, flip;	tilesize = TIFFTileSize(tif);	buf = (unsigned char*) _TIFFmalloc((alpha?4:3)*tilesize);	if (buf == 0) {		TIFFErrorExt(tif->tif_clientdata, TIFFFileName(tif), "No space for tile buffer");		return (0);	}	_TIFFmemset(buf, 0, (alpha?4:3)*tilesize);	p0 = buf;	p1 = p0 + tilesize;	p2 = p1 + tilesize;	pa = (alpha?(p2+tilesize):NULL);	TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tw);	TIFFGetField(tif, TIFFTAG_TILELENGTH, &th);	flip = setorientation(img);	if (flip & FLIP_VERTICALLY) {		y = h - 1;		toskew = -(int32)(tw + w);	}	else {		y = 0;		toskew = -(int32)(tw - w);	}	for (row = 0; row < h; row += nrow)	{		rowstoread = th - (row + img->row_offset) % th;		nrow = (row + rowstoread > h ? h - row : rowstoread);		for (col = 0; col < w; col += tw)		{			if (TIFFReadTile(tif, p0, col+img->col_offset,			    row+img->row_offset,0,0) < 0 && img->stoponerr)			{				ret = 0;				break;			}			if (TIFFReadTile(tif, p1, col+img->col_offset,			    row+img->row_offset,0,1) < 0 && img->stoponerr)			{				ret = 0;				break;			}			if (TIFFReadTile(tif, p2, col+img->col_offset,			    row+img->row_offset,0,2) < 0 && img->stoponerr)			{				ret = 0;				break;			}			if (alpha)			{				if (TIFFReadTile(tif,pa,col+img->col_offset,				    row+img->row_offset,0,3) < 0 && img->stoponerr)				{					ret = 0;					break;				}			}			pos = ((row+img->row_offset) % th) * TIFFTileRowSize(tif);			if (col + tw > w)			{				/*				 * Tile is clipped horizontally.  Calculate				 * visible portion and skewing factors.				 */				uint32 npix = w - col;				fromskew = tw - npix;				(*put)(img, raster+y*w+col, col, y,				    npix, nrow, fromskew, toskew + fromskew,				    p0 + pos, p1 + pos, p2 + pos, (alpha?(pa+pos):NULL));			} else {				(*put)(img, raster+y*w+col, col, y,				    tw, nrow, 0, toskew, p0 + pos, p1 + pos, p2 + pos, (alpha?(pa+pos):NULL));			}		}		y += (flip & FLIP_VERTICALLY ?-(int32) nrow : (int32) nrow);	}	if (flip & FLIP_HORIZONTALLY) {		uint32 line;		for (line = 0; line < h; line++) {			uint32 *left = raster + (line * w);			uint32 *right = left + w - 1;			while ( left < right ) {				uint32 temp = *left;				*left = *right;				*right = temp;				left++, right--;			}		}	}	_TIFFfree(buf);	return (ret);}/* * Get a strip-organized image that has *	PlanarConfiguration contiguous if SamplesPerPixel > 1 * or *	SamplesPerPixel == 1 */	static intgtStripContig(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h){    TIFF* tif = img->tif;    tileContigRoutine put = img->put.contig;    uint32 row, y, nrow, rowstoread;    uint32 pos;    unsigned char* buf;    uint32 rowsperstrip;    uint32 imagewidth = img->width;    tsize_t scanline;    int32 fromskew, toskew;    int ret = 1, flip;    buf = (unsigned char*) _TIFFmalloc(TIFFStripSize(tif));    if (buf == 0) {		TIFFErrorExt(tif->tif_clientdata, TIFFFileName(tif), "No space for strip buffer");		return (0);    }    _TIFFmemset(buf, 0, TIFFStripSize(tif));    flip = setorientation(img);    if (flip & FLIP_VERTICALLY) {	    y = h - 1;	    toskew = -(int32)(w + w);    } else {	    y = 0;	    toskew = -(int32)(w - w);    }    TIFFGetFieldDefaulted(tif, TIFFTAG_ROWSPERSTRIP, &rowsperstrip);    scanline = TIFFNewScanlineSize(tif);    fromskew = (w < imagewidth ? imagewidth - w : 0);    for (row = 0; row < h; row += nrow)     {        rowstoread = rowsperstrip - (row + img->row_offset) % rowsperstrip;        nrow = (row + rowstoread > h ? h - row : rowstoread);        if (TIFFReadEncodedStrip(tif,                                 TIFFComputeStrip(tif,row+img->row_offset, 0),                                 buf,                                  ((row + img->row_offset)%rowsperstrip + nrow) * scanline) < 0            && img->stoponerr)        {            ret = 0;            break;        }        pos = ((row + img->row_offset) % rowsperstrip) * scanline;        (*put)(img, raster+y*w, 0, y, w, nrow, fromskew, toskew, buf + pos);        y += (flip & FLIP_VERTICALLY ? -(int32) nrow : (int32) nrow);    }    if (flip & FLIP_HORIZONTALLY) {	    uint32 line;	    for (line = 0; line < h; line++) {		    uint32 *left = raster + (line * w);		    uint32 *right = left + w - 1;		    		    while ( left < right ) {			    uint32 temp = *left;			    *left = *right;			    *right = temp;			    left++, right--;		    }	    }    }    _TIFFfree(buf);    return (ret);}/* * Get a strip-organized image with *	 SamplesPerPixel > 1 *	 PlanarConfiguration separated * We assume that all such images are RGB. */static intgtStripSeparate(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h){	TIFF* tif = img->tif;	tileSeparateRoutine put = img->put.separate;	unsigned char *buf;	unsigned char *p0, *p1, *p2, *pa;	uint32 row, y, nrow, rowstoread;	uint32 pos;	tsize_t scanline;	uint32 rowsperstrip, offset_row;	uint32 imagewidth = img->width;	tsize_t stripsize;	int32 fromskew, toskew;	int alpha = img->alpha;	int ret = 1, flip;	stripsize = TIFFStripSize(tif);	p0 = buf = (unsigned char *)_TIFFmalloc((alpha?4:3)*stripsize);	if (buf == 0) {		TIFFErrorExt(tif->tif_clientdata, TIFFFileName(tif), "No space for tile buffer");		return (0);	}	_TIFFmemset(buf, 0, (alpha?4:3)*stripsize);	p1 = p0 + stripsize;	p2 = p1 + stripsize;	pa = (alpha?(p2+stripsize):NULL);	flip = setorientation(img);	if (flip & FLIP_VERTICALLY) {		y = h - 1;		toskew = -(int32)(w + w);	}	else {		y = 0;		toskew = -(int32)(w - w);	}	TIFFGetFieldDefaulted(tif, TIFFTAG_ROWSPERSTRIP, &rowsperstrip);	scanline = TIFFScanlineSize(tif);	fromskew = (w < imagewidth ? imagewidth - w : 0);	for (row = 0; row < h; row += nrow)	{		rowstoread = rowsperstrip - (row + img->row_offset) % rowsperstrip;		nrow = (row + rowstoread > h ? h - row : rowstoread);		offset_row = row + img->row_offset;		if (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, offset_row, 0),		    p0, ((row + img->row_offset)%rowsperstrip + nrow) * scanline) < 0		    && img->stoponerr)		{			ret = 0;			break;		}		if (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, offset_row, 1),		    p1, ((row + img->row_offset)%rowsperstrip + nrow) * scanline) < 0		    && img->stoponerr)		{			ret = 0;			break;		}		if (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, offset_row, 2),		    p2, ((row + img->row_offset)%rowsperstrip + nrow) * scanline) < 0		    && img->stoponerr)		{			ret = 0;			break;		}		if (alpha)		{			if (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, offset_row, 3),			    pa, ((row + img->row_offset)%rowsperstrip + nrow) * scanline) < 0			    && img->stoponerr)			{				ret = 0;				break;			}		}		pos = ((row + img->row_offset) % rowsperstrip) * scanline;		(*put)(img, raster+y*w, 0, y, w, nrow, fromskew, toskew, p0 + pos, p1 + pos,		    p2 + pos, (alpha?(pa+pos):NULL));		y += (flip & FLIP_VERTICALLY ? -(int32) nrow : (int32) nrow);	}	if (flip & FLIP_HORIZONTALLY) {		uint32 line;		for (line = 0; line < h; line++) {			uint32 *left = raster + (line * w);			uint32 *right = left + w - 1;			while ( left < right ) {				uint32 temp = *left;				*left = *right;				*right = temp;				left++, right--;			}		}	}	_TIFFfree(buf);	return (ret);}/* * The following routines move decoded data returned * from the TIFF library into rasters filled with packed * ABGR pixels (i.e. suitable for passing to lrecwrite.) * * The routines have been created according to the most * important cases and optimized.  PickContigCase and * PickSeparateCase analyze the parameters and select * the appropriate "get" and "put" routine to use. */#define	REPEAT8(op)	REPEAT4(op); REPEAT4(op)#define	REPEAT4(op)	REPEAT2(op); REPEAT2(op)#define	REPEAT2(op)	op; op#define	CASE8(x,op)			\    switch (x) {			\    case 7: op; case 6: op; case 5: op;	\    case 4: op; case 3: op; case 2: op;	\    case 1: op;				\    }#define	CASE4(x,op)	switch (x) { case 3: op; case 2: op; case 1: op; }#define	NOP#define	UNROLL8(w, op1, op2) {		\    uint32 _x;				\    for (_x = w; _x >= 8; _x -= 8) {	\	op1;				\	REPEAT8(op2);			\    }					\    if (_x > 0) {			\	op1;				\	CASE8(_x,op2);			\    }					\}#define	UNROLL4(w, op1, op2) {		\    uint32 _x;				\    for (_x = w; _x >= 4; _x -= 4) {	\	op1;				\	REPEAT4(op2);			\    }					\    if (_x > 0) {			\	op1;				\	CASE4(_x,op2);			\    }					\}#define	UNROLL2(w, op1, op2) {		\    uint32 _x;				\    for (_x = w; _x >= 2; _x -= 2) {	\	op1;				\	REPEAT2(op2);			\    }					\    if (_x) {				\	op1;				\	op2;				\    }					\}    #define	SKEW(r,g,b,skew)	{ r += skew; g += skew; b += skew; }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费在线观看一区二区三区| 亚洲欧美国产毛片在线| 激情综合色播激情啊| 日韩欧美一区在线| 精品在线一区二区三区| 久久只精品国产| 福利一区二区在线观看| 亚洲欧美国产三级| 欧美日韩和欧美的一区二区| 秋霞电影网一区二区| 精品成人一区二区三区四区| 国产精品1区二区.| 综合久久久久久| 在线亚洲人成电影网站色www| 亚洲一区在线视频| 日韩精品一区二区在线| 国产盗摄精品一区二区三区在线 | 亚洲国产一区二区a毛片| 欧美亚洲一区二区在线| 精品在线免费视频| 日韩美女啊v在线免费观看| 欧美日韩视频在线观看一区二区三区| 日韩成人午夜精品| 国产亚洲精品久| 欧美日韩免费在线视频| 国产一区二区免费在线| 亚洲欧美乱综合| 日韩精品一区二区三区在线观看| 99在线精品一区二区三区| 无吗不卡中文字幕| 欧美国产激情二区三区| 欧美美女黄视频| 成人午夜激情影院| 人人精品人人爱| 亚洲精品日韩专区silk| 久久亚洲影视婷婷| 欧美日韩国产天堂| 成人动漫一区二区三区| 全国精品久久少妇| 一区二区三区欧美| 亚洲国产电影在线观看| 欧美一区二区三区视频免费 | 亚洲色大成网站www久久九九| 7799精品视频| 91碰在线视频| 麻豆专区一区二区三区四区五区| 亚洲图片你懂的| 久久久久久久久久久黄色| 欧美乱熟臀69xxxxxx| www.99精品| 国产精品91一区二区| 青青草精品视频| 亚洲一级电影视频| 自拍偷拍国产精品| 国产精品美女www爽爽爽| 26uuuu精品一区二区| 91精品国产欧美日韩| 欧美午夜不卡视频| 99精品热视频| bt欧美亚洲午夜电影天堂| 国产综合色在线| 免费成人在线观看| 日韩电影在线看| 亚洲永久免费av| 亚洲三级电影网站| 中文无字幕一区二区三区| 精品国一区二区三区| 欧美精品一二三区| 欧美三级欧美一级| 欧美在线观看视频一区二区| 色综合色狠狠天天综合色| 99热这里都是精品| 不卡的av电影| 97久久精品人人澡人人爽| 成人动漫精品一区二区| 白白色 亚洲乱淫| 成人动漫一区二区在线| 成人av免费观看| 91亚洲精华国产精华精华液| 99久久精品国产网站| 99re视频这里只有精品| 91玉足脚交白嫩脚丫在线播放| av午夜一区麻豆| 日本高清无吗v一区| 欧美天堂亚洲电影院在线播放| 欧美亚洲高清一区| 欧美日韩成人在线一区| 日韩午夜在线观看视频| 精品日韩av一区二区| 精品va天堂亚洲国产| 久久久91精品国产一区二区精品| 久久精品人人做人人综合| 国产精品免费看片| 一区二区三区国产精品| 五月婷婷综合网| 久久国产尿小便嘘嘘| 国产精品一区二区在线播放| av亚洲精华国产精华精| 欧美优质美女网站| 欧美一区二区视频免费观看| 欧美videossexotv100| 国产欧美日韩视频一区二区| 亚洲欧美日韩久久精品| 日韩制服丝袜先锋影音| 国模一区二区三区白浆| 成人av午夜电影| 欧美理论在线播放| 久久精品一区二区三区四区| 亚洲欧洲99久久| 日韩av电影免费观看高清完整版| 久久精工是国产品牌吗| www.在线欧美| 91精品国产综合久久国产大片| 久久综合九色综合欧美亚洲| 国产精品黄色在线观看| 午夜成人免费视频| 国产精品亚洲成人| 欧美三区在线视频| 久久久亚洲精品石原莉奈| 一区二区三区高清在线| 九九在线精品视频| 色综合色综合色综合| 日韩精品一区二区三区视频播放| 国产精品成人一区二区艾草| 青青草精品视频| 色综合久久综合| 久久久久国产一区二区三区四区| 亚洲自拍偷拍九九九| 国产福利91精品| 欧美一区二区在线观看| 日韩va欧美va亚洲va久久| 国产精品一区二区在线观看网站| 欧美色倩网站大全免费| 中文欧美字幕免费| 九九热在线视频观看这里只有精品| 色先锋aa成人| 国产精品你懂的在线欣赏| 久久超碰97人人做人人爱| 欧美自拍偷拍一区| 国产欧美日韩精品一区| 久久精品国产一区二区| 欧美探花视频资源| 成人免费在线视频| 国产精品911| 精品国产不卡一区二区三区| 亚洲国产欧美在线人成| 97精品久久久久中文字幕| 国产亚洲精品7777| 久热成人在线视频| 在线成人小视频| 亚洲图片欧美综合| 色综合天天天天做夜夜夜夜做| 国产亚洲欧美中文| 久久成人久久鬼色| 日韩免费一区二区三区在线播放| 亚洲va国产va欧美va观看| 97se狠狠狠综合亚洲狠狠| 中文字幕欧美日韩一区| 国产乱一区二区| 精品av久久707| 麻豆精品一区二区三区| 欧美一区二区三区在线视频| 婷婷综合久久一区二区三区| 欧美三级韩国三级日本一级| 亚洲自拍偷拍麻豆| 欧美性受xxxx黑人xyx| 亚洲一区二区高清| 欧美美女bb生活片| 丝袜亚洲精品中文字幕一区| 欧美日韩一本到| 日韩激情一区二区| 日韩欧美国产精品| 国产在线精品国自产拍免费| 亚洲精品一区二区三区蜜桃下载 | 91成人免费在线| 亚洲女人的天堂| 欧美性xxxxxx少妇| 日韩激情中文字幕| 欧美r级在线观看| 国产精品影音先锋| 国产蜜臀97一区二区三区| 欧美日韩日日摸| 日日夜夜免费精品| 精品国产乱码久久久久久夜甘婷婷 | 一区二区三区在线观看网站| 欧美在线观看一区| 美女视频黄a大片欧美| 久久综合九色综合欧美亚洲| 成人不卡免费av| 亚洲第一二三四区| 久久久美女艺术照精彩视频福利播放| 成人午夜精品一区二区三区| 一片黄亚洲嫩模| 日韩免费电影一区| av一区二区久久| 免费在线看一区| 中文字幕一区二区在线观看| 欧美日韩一级二级| 国产成a人亚洲精品| 亚洲国产一区视频|