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

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

?? img.c

?? 小波圖像變換 以VC作為開(kāi)發(fā)環(huán)境
?? C
字號(hào):
#include "local.h"

/* PPM likes no more than about 70 characters per line */
#define MXN_PXL_PER_ROW 5

#if defined(ARCH_SUN4) && OSREL_MAJOR < 5
/* Why, oh, why aren't these declarations in stdio on SunOS 4 SPARCs????? */
extern rewind _PROTO((FILE *fp));
extern ungetc _PROTO((int ch, FILE *fp));
#endif

static int decimal_read _PROTO((FILE *fp));
static pixel pxlPpmAscii_read _PROTO((FILE *fp, int rgbMaxPpm));

/* decimal_read -- read an ASCII decimal number from a file */
static int decimal_read(fp)
	FILE *fp;
{
	int ch, val, state;

	state = 1;
	val = 0;
	for (;;) {
		ch = getc(fp);
		switch (state) {

		case 1:	/* normal */
			if (ch == '#')
				state = 2;
			else if (isascii(ch) && isdigit(ch)) {
				val = (ch - '0');
				state = 3;
			} else if (ch == EOF || !isascii(ch) || !isspace(ch))
				return EOF;
			break;

		case 2:	/* skip to end of line */
			if (ch == '\n')
				state = 1;
			else if (ch == EOF)
				return EOF;
			break;

		case 3:	/* accumulate and look for end of number */
			if (isascii(ch) && isdigit(ch))
				val = 10 * val + (ch - '0');
			else if (ch == EOF || (isascii(ch) && isspace(ch)))
				return val;
			else if (ch == '#')
				state = 4;
			break;

		case 4:	/* return value when end of line or file is reached */
			if (ch == EOF || ch == '\n')
				return val;
			break;

		default:
			NOT_REACHED;
		}
	}
}

/* img_delete -- delete a PPM image object */
void img_delete(img)
	image *img;
{
	assert(img != NULL);
	FREE_LINTOK(img->pxl[0]);
	FREE_LINTOK(img->pxl);
	img->pxl = NULL;
	return;
}

/* img_new -- create an image object */
image *img_new(npx, npy)
	int npx, npy;
{
	image *img;
	pixel *pxl;
	int py;

	/*
	 *	For convenience's sake, we adopt the pixel ordering used by SGI:
	 *	pxl[y][x].
	 */
	(void) MALLOC_LINTOK(img, 1, image);
	if (img == NULL)
		return NULL;
	img->npx = npx;
	img->npy = npy;
	if (MALLOC_LINTOK(img->pxl, npy, pixel *) == NULL) {
		FREE_LINTOK(img);
		return NULL;
	}
	if (MALLOC_LINTOK(pxl, npx * npy, pixel) == NULL) {
		FREE_LINTOK(img->pxl);
		FREE_LINTOK(img);
		return NULL;
	}
	for (py = 0; py < npy; py++)
		img->pxl[py] = &pxl[py * npx];
	return img;
}

/* img_read -- read an image file */
image *img_read(fp, whynot)
	FILE *fp;	/* in: open file (must be repositionable) */
	char **whynot;	/* out: (if not NULL) in case of error, set to reason why read failed */
{
	unsigned char *scnl;
	int px, npx, py, npy, zRes, rgbMaxPpm, iScnl, iRgb;
	int ch1, ch2, chR, chG, chB;
	int pxlR, pxlG, pxlB;
	image *img;
	register pixel pxl;
	bool isAscii;
	int _pxlval;
#define PXL_PPM_ASCII_READ(fp) \
	( (_pxlval = decimal_read(fp)) != EOF \
			&& 0 <= _pxlval && _pxlval <= rgbMaxPpm \
			? (_pxlval * PXL_RGBMAX) / rgbMaxPpm \
			: EOF )

	/*
	 *	Read the first two characters for magic cookies.
	 */
	if (fp == NULL) {
		if (whynot != NULL)
			*whynot = "NULL FILE pointer passed";
		return FALSE;
	}
	ch1 = getc(fp);
	ch2 = getc(fp);

	if (ch1 == 'P' && ch2 == '3')
		isAscii = TRUE;
	else if (ch1 == 'P' && ch2 == '6')
		isAscii = FALSE;
	else {
		if (whynot != NULL)
			*whynot = "unrecognized or unsupported file format";
		return NULL;
	}

	npx = decimal_read(fp);
	if (npx == EOF || npx < 1) {
		if (whynot != NULL)
			*whynot = "improperly coded image width";
		return NULL;
	}
	npy = decimal_read(fp);
	if (npy == EOF || npy < 1) {
		if (whynot != NULL)
			*whynot = "improperly coded image height";
		return NULL;
	}
	rgbMaxPpm = decimal_read(fp);
	if (rgbMaxPpm == EOF || rgbMaxPpm < 1) {
		if (whynot != NULL)
			*whynot = "improperly coded image max RGB value";
		return NULL;
	}

	img = img_new(npx, npy);
	if (img == NULL) {
		if (whynot != NULL)
			*whynot = "cannot allocate memory for image";
		return NULL;
	}

	if (isAscii) {
		for (py = npy - 1; py >= 0; py--) {
			for (px = 0; px < npx; px++) {
				pxlR = PXL_PPM_ASCII_READ(fp);
				pxlG = PXL_PPM_ASCII_READ(fp);
				pxlB = PXL_PPM_ASCII_READ(fp);
				if (pxlR == EOF || pxlG == EOF || pxlB == EOF) {
					img_delete(img);
					if (whynot != NULL)
						*whynot = "premature end-of-file reached";
					return NULL;
				}
				PXL_SET_RGB(IMG_PXL_AT_XY(img, px, py), pxlR, pxlG, pxlB);
			}
		}
	} else {
		for (py = npy - 1; py >= 0; py--) {
			for (px = 0; px < npx; px++) {
				chR = getc(fp);
				chG = getc(fp);
				chB = getc(fp);
				if (chR == EOF || chG == EOF || chB == EOF) {
					img_delete(img);
					if (whynot != NULL)
						*whynot = "premature end-of-file reached";
					return NULL;
				}
				pxlR = (chR * PXL_RGBMAX) / rgbMaxPpm;
				pxlG = (chG * PXL_RGBMAX) / rgbMaxPpm;
				pxlB = (chB * PXL_RGBMAX) / rgbMaxPpm;
				PXL_SET_RGB(IMG_PXL_AT_XY(img, px, py), pxlR, pxlG, pxlB);
			}
		}
	}
#undef PXL_PPM_ASCII_READ

	return img;
}


/* img_write -- write a img image to a file */
bool img_write(img, isAscii, fp)
	image *img;
	bool isAscii;
	FILE *fp;
{
	int px, py;
	int iScnl;
	unsigned char *scnl;


	assert(fp != NULL);

	if (isAscii) {
		(void) fprintf(fp, "P3\n");
		(void) fprintf(fp, "%d %d\n", img->npx, img->npy);
		(void) fprintf(fp, "%d\n", PXL_RGBMAX);
		for (py = img->npy - 1; py >= 0; py--) {
			(void) fprintf(fp, "# row %d:\n", py);
			for (px = 0; px < img->npx; px++) {
				(void) fprintf(fp,
						( (px + 1) % MXN_PXL_PER_ROW == 0
								|| px == img->npx - 1
							? "%d %d %d\n"
							: "%d %d %d  " ),
						R_OF_PXL(IMG_PXL_AT_XY(img, px, py)),
						G_OF_PXL(IMG_PXL_AT_XY(img, px, py)),
						B_OF_PXL(IMG_PXL_AT_XY(img, px, py)));
			}
		}
	} else {
		(void) fprintf(fp, "P6\n");
		(void) fprintf(fp, "%d %d\n", img->npx, img->npy);
		(void) fprintf(fp, "%d\n", PXL_RGBMAX);
		for (py = img->npy - 1; py >= 0; py--) {
			for (px = 0; px < img->npx; px++) {
				(void) putc(R_OF_PXL(IMG_PXL_AT_XY(img, px, py)), fp);
				(void) putc(G_OF_PXL(IMG_PXL_AT_XY(img, px, py)), fp);
				(void) putc(B_OF_PXL(IMG_PXL_AT_XY(img, px, py)), fp);
			}
		}
	}

	return TRUE;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品免费免费| 丝袜国产日韩另类美女| 欧美日韩国产一区| 精品一区二区三区日韩| 亚洲乱码一区二区三区在线观看| 日韩欧美区一区二| 91久久精品一区二区三| 国内精品伊人久久久久av一坑| 有坂深雪av一区二区精品| 久久久久国产精品人| 91精品黄色片免费大全| 色婷婷综合久久久中文一区二区| 精品伊人久久久久7777人| 亚洲一本大道在线| 日韩毛片精品高清免费| 国产日韩欧美一区二区三区综合| 欧美一级专区免费大片| 在线观看一区日韩| 91麻豆产精品久久久久久| 国产伦精品一区二区三区在线观看 | 国产精品久久久久久亚洲伦| 日韩欧美国产一区在线观看| 欧美日韩日日骚| 日本精品免费观看高清观看| www..com久久爱| 国产在线播放一区二区三区| 日韩国产欧美一区二区三区| 亚洲电影一级黄| 亚洲图片欧美色图| 樱桃视频在线观看一区| 亚洲人成网站色在线观看| 国产精品久99| 国产精品九色蝌蚪自拍| 欧美国产精品一区| 欧美激情在线免费观看| 国产欧美日韩另类一区| 国产亚洲欧美在线| 欧美激情一区二区三区| 国产精品天天摸av网| 国产片一区二区三区| 欧美激情一二三区| 国产精品电影一区二区| 自拍偷拍亚洲综合| 亚洲毛片av在线| 亚洲精品高清视频在线观看| 亚洲一区二区综合| 亚欧色一区w666天堂| 日本三级亚洲精品| 精品一区二区免费在线观看| 精一区二区三区| 国产精品乡下勾搭老头1| 国产a精品视频| 成人a区在线观看| 色婷婷av久久久久久久| 欧美日韩情趣电影| 精品欧美一区二区三区精品久久| 久久这里只有精品6| 中文字幕av不卡| 亚洲女厕所小便bbb| 五月天欧美精品| 精品一区二区在线免费观看| 国产精品99久久久久久久女警 | 精品少妇一区二区三区日产乱码| 日韩欧美亚洲另类制服综合在线 | 日韩欧美在线一区二区三区| 欧美草草影院在线视频| 国产欧美va欧美不卡在线| 中文字幕不卡在线观看| 亚洲一区二区三区四区中文字幕 | 日韩主播视频在线| 国产毛片一区二区| 91国模大尺度私拍在线视频| 欧美一级电影网站| 亚洲国产精品成人久久综合一区| 一区二区国产视频| 狠狠色狠狠色综合| 91视频www| 欧美高清性hdvideosex| 国产欧美精品一区二区三区四区| 亚洲女同ⅹxx女同tv| 久久福利资源站| 91小视频免费看| 91精品婷婷国产综合久久性色| 国产日韩欧美精品一区| 亚洲第一av色| youjizz国产精品| 91.麻豆视频| 国产精品丝袜91| 日韩电影在线免费| 不卡一区在线观看| 日韩免费高清av| 一区二区三区91| 国产成人在线视频网址| 在线不卡一区二区| 亚洲同性gay激情无套| 久久成人免费电影| 欧美三级欧美一级| 国产精品久线在线观看| 美国十次了思思久久精品导航| 91亚洲资源网| 久久久久青草大香线综合精品| 五月天中文字幕一区二区| 成av人片一区二区| 2014亚洲片线观看视频免费| 亚洲妇女屁股眼交7| 91影院在线免费观看| 久久久国际精品| 麻豆精品新av中文字幕| 欧美日韩中字一区| 亚洲蜜桃精久久久久久久| 国产成a人无v码亚洲福利| 日韩欧美一二三四区| 午夜日韩在线电影| 一本大道av一区二区在线播放| 久久这里都是精品| 九九久久精品视频| 3atv一区二区三区| 亚洲高清在线视频| 欧洲人成人精品| 亚洲免费观看在线观看| 99精品国产99久久久久久白柏| 精品sm在线观看| 激情久久五月天| 精品国产成人系列| 国产最新精品精品你懂的| 日韩免费电影网站| 极品瑜伽女神91| 欧美成人性福生活免费看| 美女视频第一区二区三区免费观看网站| 欧美日韩中文字幕精品| 亚洲图片欧美视频| 欧美精品v国产精品v日韩精品| 亚洲成人www| 欧美精品久久99| 青青青伊人色综合久久| 欧美日本在线观看| 日韩av网站免费在线| 欧美精品丝袜中出| 男女性色大片免费观看一区二区| 91精品国产91热久久久做人人| 日日骚欧美日韩| 日韩丝袜美女视频| 精品系列免费在线观看| 国产午夜三级一区二区三| 成人一区二区三区视频| 一区在线播放视频| 欧美亚洲综合在线| 日韩国产一区二| 精品精品欲导航| 岛国精品在线观看| ●精品国产综合乱码久久久久| 91久久香蕉国产日韩欧美9色| 一区二区免费视频| 91精品国产乱| 国产成人免费9x9x人网站视频| 国产精品欧美综合在线| 91理论电影在线观看| 亚洲一二三四久久| 日韩午夜激情免费电影| 国产成人av电影在线| 自拍偷拍国产精品| 欧美麻豆精品久久久久久| 麻豆一区二区三区| 亚洲国产激情av| 在线视频综合导航| 青青草国产成人99久久| 久久久久久一级片| 欧洲精品在线观看| 免费视频一区二区| 国产精品乱码一区二区三区软件| 色婷婷久久99综合精品jk白丝| 天天色天天爱天天射综合| 久久青草欧美一区二区三区| 94-欧美-setu| 久久精品国产秦先生| 成人免费视频在线观看| 91精品国产综合久久久蜜臀图片 | 91精品国产欧美一区二区18| 国产福利视频一区二区三区| 亚洲一区二三区| 国产午夜精品久久久久久久| 欧洲国内综合视频| 国产精品一区一区三区| 亚洲国产欧美日韩另类综合| 精品1区2区在线观看| 欧美色图免费看| 粉嫩av亚洲一区二区图片| 午夜电影网一区| 亚洲欧美综合在线精品| 欧美www视频| 欧美日韩成人综合天天影院| 成人性生交大片免费看在线播放 | 日本韩国一区二区三区| 国产麻豆91精品| 亚洲gay无套男同| 中文字幕亚洲视频| 久久―日本道色综合久久| 制服丝袜中文字幕亚洲| 色综合天天做天天爱| 成人午夜激情影院|