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

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

?? jas_icc.c

?? JPEG2000是以小波變換為基礎
?? C
?? 第 1 頁 / 共 4 頁
字號:
		  tagtab->ents[i].first)			++i;		newoff = (i < JAS_CAST(int, tagtab->numents)) ?		  tagtab->ents[i].off : prof->hdr.size;		reloff = newoff - curoff;		assert(reloff >= 0);		if (reloff > 0) {			if (jas_stream_pad(out, reloff, 0) != reloff)				goto error;			curoff += reloff;		}	}		return 0;error:	/* XXX - need to free some resources here */	return -1;}static int jas_iccprof_writehdr(jas_stream_t *out, jas_icchdr_t *hdr){	if (jas_iccputuint32(out, hdr->size) ||	  jas_iccputuint32(out, hdr->cmmtype) ||	  jas_iccputuint32(out, hdr->version) ||	  jas_iccputuint32(out, hdr->clas) ||	  jas_iccputuint32(out, hdr->colorspc) ||	  jas_iccputuint32(out, hdr->refcolorspc) ||	  jas_iccputtime(out, &hdr->ctime) ||	  jas_iccputuint32(out, hdr->magic) ||	  jas_iccputuint32(out, hdr->platform) ||	  jas_iccputuint32(out, hdr->flags) ||	  jas_iccputuint32(out, hdr->maker) ||	  jas_iccputuint32(out, hdr->model) ||	  jas_iccputuint64(out, hdr->attr) ||	  jas_iccputuint32(out, hdr->intent) ||	  jas_iccputxyz(out, &hdr->illum) ||	  jas_iccputuint32(out, hdr->creator) ||	  jas_stream_pad(out, 44, 0) != 44)		return -1;	return 0;}static int jas_iccprof_puttagtab(jas_stream_t *out, jas_icctagtab_t *tagtab){	int i;	jas_icctagtabent_t *tagtabent;	if (jas_iccputuint32(out, tagtab->numents))		goto error;	for (i = 0; i < JAS_CAST(int, tagtab->numents); ++i) {		tagtabent = &tagtab->ents[i];		if (jas_iccputuint32(out, tagtabent->tag) ||		  jas_iccputuint32(out, tagtabent->off) ||		  jas_iccputuint32(out, tagtabent->len))			goto error;	}	return 0;error:	return -1;}static int jas_iccprof_readhdr(jas_stream_t *in, jas_icchdr_t *hdr){	if (jas_iccgetuint32(in, &hdr->size) ||	  jas_iccgetuint32(in, &hdr->cmmtype) ||	  jas_iccgetuint32(in, &hdr->version) ||	  jas_iccgetuint32(in, &hdr->clas) ||	  jas_iccgetuint32(in, &hdr->colorspc) ||	  jas_iccgetuint32(in, &hdr->refcolorspc) ||	  jas_iccgettime(in, &hdr->ctime) ||	  jas_iccgetuint32(in, &hdr->magic) ||	  jas_iccgetuint32(in, &hdr->platform) ||	  jas_iccgetuint32(in, &hdr->flags) ||	  jas_iccgetuint32(in, &hdr->maker) ||	  jas_iccgetuint32(in, &hdr->model) ||	  jas_iccgetuint64(in, &hdr->attr) ||	  jas_iccgetuint32(in, &hdr->intent) ||	  jas_iccgetxyz(in, &hdr->illum) ||	  jas_iccgetuint32(in, &hdr->creator) ||	  jas_stream_gobble(in, 44) != 44)		return -1;	return 0;}static int jas_iccprof_gettagtab(jas_stream_t *in, jas_icctagtab_t *tagtab){	int i;	jas_icctagtabent_t *tagtabent;	if (tagtab->ents) {		jas_free(tagtab->ents);		tagtab->ents = 0;	}	if (jas_iccgetuint32(in, &tagtab->numents))		goto error;	if (!(tagtab->ents = jas_malloc(tagtab->numents *	  sizeof(jas_icctagtabent_t))))		goto error;	tagtabent = tagtab->ents;	for (i = 0; i < JAS_CAST(long, tagtab->numents); ++i) {		if (jas_iccgetuint32(in, &tagtabent->tag) ||		jas_iccgetuint32(in, &tagtabent->off) ||		jas_iccgetuint32(in, &tagtabent->len))			goto error;		++tagtabent;	}	return 0;error:	if (tagtab->ents) {		jas_free(tagtab->ents);		tagtab->ents = 0;	}	return -1;}jas_iccattrval_t *jas_iccprof_getattr(jas_iccprof_t *prof,  jas_iccattrname_t name){	int i;	jas_iccattrval_t *attrval;	if ((i = jas_iccattrtab_lookup(prof->attrtab, name)) < 0)		goto error;	if (!(attrval = jas_iccattrval_clone(prof->attrtab->attrs[i].val)))		goto error;	return attrval;error:	return 0;}int jas_iccprof_setattr(jas_iccprof_t *prof, jas_iccattrname_t name,  jas_iccattrval_t *val){	int i;	if ((i = jas_iccattrtab_lookup(prof->attrtab, name)) >= 0) {		if (val) {			if (jas_iccattrtab_replace(prof->attrtab, i, name, val))				goto error;		} else {			jas_iccattrtab_delete(prof->attrtab, i);		}	} else {		if (val) {			if (jas_iccattrtab_add(prof->attrtab, -1, name, val))				goto error;		} else {			/* NOP */		}	}	return 0;error:	return -1;}int jas_iccprof_gethdr(jas_iccprof_t *prof, jas_icchdr_t *hdr){	*hdr = prof->hdr;	return 0;}int jas_iccprof_sethdr(jas_iccprof_t *prof, jas_icchdr_t *hdr){	prof->hdr = *hdr;	return 0;}static void jas_iccprof_sorttagtab(jas_icctagtab_t *tagtab){	qsort(tagtab->ents, tagtab->numents, sizeof(jas_icctagtabent_t),	  jas_icctagtabent_cmp);}static int jas_icctagtabent_cmp(const void *src, const void *dst){	jas_icctagtabent_t *srctagtabent = JAS_CAST(jas_icctagtabent_t *, src);	jas_icctagtabent_t *dsttagtabent = JAS_CAST(jas_icctagtabent_t *, dst);	if (srctagtabent->off > dsttagtabent->off) {		return 1;	} else if (srctagtabent->off < dsttagtabent->off) {		return -1;	}	return 0;}static jas_iccattrvalinfo_t *jas_iccattrvalinfo_lookup(jas_iccsig_t type){	jas_iccattrvalinfo_t *info;	info = jas_iccattrvalinfos;	for (info = jas_iccattrvalinfos; info->type; ++info) {		if (info->type == type) {			return info;		}	}	return 0;}static int jas_iccgettime(jas_stream_t *in, jas_icctime_t *time){	if (jas_iccgetuint16(in, &time->year) ||	  jas_iccgetuint16(in, &time->month) ||	  jas_iccgetuint16(in, &time->day) ||	  jas_iccgetuint16(in, &time->hour) ||	  jas_iccgetuint16(in, &time->min) ||	  jas_iccgetuint16(in, &time->sec)) {		return -1;	}	return 0;}static int jas_iccgetxyz(jas_stream_t *in, jas_iccxyz_t *xyz){	if (jas_iccgetsint32(in, &xyz->x) ||	  jas_iccgetsint32(in, &xyz->y) ||	  jas_iccgetsint32(in, &xyz->z)) {		return -1;	}	return 0;}static int jas_iccputtime(jas_stream_t *out, jas_icctime_t *time){	jas_iccputuint16(out, time->year);	jas_iccputuint16(out, time->month);	jas_iccputuint16(out, time->day);	jas_iccputuint16(out, time->hour);	jas_iccputuint16(out, time->min);	jas_iccputuint16(out, time->sec);	return 0;}static int jas_iccputxyz(jas_stream_t *out, jas_iccxyz_t *xyz){	jas_iccputuint32(out, xyz->x);	jas_iccputuint32(out, xyz->y);	jas_iccputuint32(out, xyz->z);	return 0;}/******************************************************************************\* attribute table class\******************************************************************************/static jas_iccattrtab_t *jas_iccattrtab_create(){	jas_iccattrtab_t *tab;	tab = 0;	if (!(tab = jas_malloc(sizeof(jas_iccattrtab_t))))		goto error;	tab->maxattrs = 0;	tab->numattrs = 0;	tab->attrs = 0;	if (jas_iccattrtab_resize(tab, 32))		goto error;	return tab;error:	if (tab)		jas_iccattrtab_destroy(tab);	return 0;}static jas_iccattrtab_t *jas_iccattrtab_copy(jas_iccattrtab_t *attrtab){	jas_iccattrtab_t *newattrtab;	int i;	if (!(newattrtab = jas_iccattrtab_create()))		goto error;	for (i = 0; i < attrtab->numattrs; ++i) {		if (jas_iccattrtab_add(newattrtab, i, attrtab->attrs[i].name,		  attrtab->attrs[i].val))			goto error;	}	return newattrtab;error:	return 0;}static void jas_iccattrtab_destroy(jas_iccattrtab_t *tab){	if (tab->attrs) {		while (tab->numattrs > 0) {			jas_iccattrtab_delete(tab, 0);		}		jas_free(tab->attrs);	}	jas_free(tab);}void jas_iccattrtab_dump(jas_iccattrtab_t *attrtab, FILE *out){	int i;	jas_iccattr_t *attr;	jas_iccattrval_t *attrval;	jas_iccattrvalinfo_t *info;	char buf[16];	fprintf(out, "numattrs=%d\n", attrtab->numattrs);	fprintf(out, "---\n");	for (i = 0; i < attrtab->numattrs; ++i) {		attr = &attrtab->attrs[i];		attrval = attr->val;		info = jas_iccattrvalinfo_lookup(attrval->type);		if (!info) abort();		fprintf(out, "attrno=%d; attrname=\"%s\"(0x%08x); attrtype=\"%s\"(0x%08x)\n",		  i,		  jas_iccsigtostr(attr->name, &buf[0]),		  attr->name,		  jas_iccsigtostr(attrval->type, &buf[8]),		  attrval->type		  );		jas_iccattrval_dump(attrval, out);		fprintf(out, "---\n");	}}static int jas_iccattrtab_resize(jas_iccattrtab_t *tab, int maxents){	jas_iccattr_t *newattrs;	assert(maxents >= tab->numattrs);	newattrs = tab->attrs ? jas_realloc(tab->attrs, maxents *	  sizeof(jas_iccattr_t)) : jas_malloc(maxents * sizeof(jas_iccattr_t));	if (!newattrs)		return -1;	tab->attrs = newattrs;	tab->maxattrs = maxents;	return 0;}static int jas_iccattrtab_add(jas_iccattrtab_t *attrtab, int i,  jas_iccuint32_t name, jas_iccattrval_t *val){	int n;	jas_iccattr_t *attr;	jas_iccattrval_t *tmpattrval;	tmpattrval = 0;	if (i < 0) {		i = attrtab->numattrs;	}	assert(i >= 0 && i <= attrtab->numattrs);	if (attrtab->numattrs >= attrtab->maxattrs) {		if (jas_iccattrtab_resize(attrtab, attrtab->numattrs + 32)) {			goto error;		}	}	if (!(tmpattrval = jas_iccattrval_clone(val)))		goto error;	n = attrtab->numattrs - i;	if (n > 0)		memmove(&attrtab->attrs[i + 1], &attrtab->attrs[i],		  n * sizeof(jas_iccattr_t));	attr = &attrtab->attrs[i];	attr->name = name;	attr->val = tmpattrval;	++attrtab->numattrs;	return 0;error:	if (tmpattrval)		jas_iccattrval_destroy(tmpattrval);	return -1;}static int jas_iccattrtab_replace(jas_iccattrtab_t *attrtab, int i,  jas_iccuint32_t name, jas_iccattrval_t *val){	jas_iccattrval_t *newval;	jas_iccattr_t *attr;	if (!(newval = jas_iccattrval_clone(val)))		goto error;	attr = &attrtab->attrs[i];	jas_iccattrval_destroy(attr->val);	attr->name = name;	attr->val = newval;	return 0;error:	return -1;}static void jas_iccattrtab_delete(jas_iccattrtab_t *attrtab, int i){	int n;	jas_iccattrval_destroy(attrtab->attrs[i].val);	if ((n = attrtab->numattrs - i - 1) > 0)		memmove(&attrtab->attrs[i], &attrtab->attrs[i + 1],		  n * sizeof(jas_iccattr_t));	--attrtab->numattrs;}static int jas_iccattrtab_get(jas_iccattrtab_t *attrtab, int i,  jas_iccattrname_t *name, jas_iccattrval_t **val){	jas_iccattr_t *attr;	if (i < 0 || i >= attrtab->numattrs)		goto error;	attr = &attrtab->attrs[i];	*name = attr->name;	if (!(*val = jas_iccattrval_clone(attr->val)))		goto error;	return 0;error:	return -1;}static int jas_iccattrtab_lookup(jas_iccattrtab_t *attrtab,  jas_iccuint32_t name){	int i;	jas_iccattr_t *attr;	for (i = 0; i < attrtab->numattrs; ++i) {		attr = &attrtab->attrs[i];		if (attr->name == name)			return i;	}	return -1;}/******************************************************************************\* attribute value class\******************************************************************************/jas_iccattrval_t *jas_iccattrval_create(jas_iccuint32_t type){	jas_iccattrval_t *attrval;	jas_iccattrvalinfo_t *info;	if (!(info = jas_iccattrvalinfo_lookup(type)))		goto error;	if (!(attrval = jas_iccattrval_create0()))		goto error;	attrval->ops = &info->ops;	attrval->type = type;	++attrval->refcnt;	memset(&attrval->data, 0, sizeof(attrval->data));	return attrval;error:	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕va一区二区三区| 一区二区高清在线| 亚洲图片你懂的| 亚洲va天堂va国产va久| 久久99久久99精品免视看婷婷| 国产成a人亚洲精| 91精品91久久久中77777| 日韩欧美视频一区| 亚洲欧洲日韩av| 另类综合日韩欧美亚洲| 成人久久18免费网站麻豆| 精品视频色一区| 久久精品亚洲麻豆av一区二区| 一区二区三区蜜桃网| 久久国产剧场电影| 菠萝蜜视频在线观看一区| 欧美特级限制片免费在线观看| 亚洲精品一区二区三区精华液| 亚洲欧美另类久久久精品2019| 日韩成人dvd| 成人福利视频在线| 亚洲国产欧美另类丝袜| 国产久卡久卡久卡久卡视频精品| 美女一区二区视频| 91丨九色丨蝌蚪富婆spa| 欧美一三区三区四区免费在线看| 中文字幕不卡三区| 美国十次综合导航| 一本大道久久a久久精品综合| 精品国精品国产| 亚洲国产日韩综合久久精品| 国产成人精品www牛牛影视| 欧美精品亚洲二区| 中文字幕在线一区| 精品一区二区三区欧美| 欧美日韩在线电影| 亚洲女同一区二区| 国产成人精品亚洲日本在线桃色| 欧美国产精品中文字幕| 日本美女一区二区三区视频| 91香蕉视频在线| 国产欧美日韩久久| 久久国产精品99久久久久久老狼| 欧美亚洲国产怡红院影院| 亚洲婷婷在线视频| 国产91精品露脸国语对白| 精品国产一区二区三区四区四 | 日韩成人av影视| 99精品久久久久久| 欧美国产丝袜视频| 理论片日本一区| 欧美一区二区三区四区视频| 亚洲一区视频在线| 色婷婷综合视频在线观看| 中文字幕一区三区| 成人午夜在线视频| 久久婷婷一区二区三区| 久久疯狂做爰流白浆xx| 日韩一级视频免费观看在线| 午夜精品一区二区三区免费视频| 一本大道久久a久久综合| 亚洲免费资源在线播放| 99精品视频中文字幕| 国产精品久久二区二区| 粉嫩一区二区三区在线看| 日本一区二区三区视频视频| 国产精品白丝jk白祙喷水网站 | 成人免费的视频| 久久九九久久九九| 国产伦精品一区二区三区在线观看 | 精品99999| 国产揄拍国内精品对白| 久久亚洲精品国产精品紫薇| 国内精品嫩模私拍在线| 久久婷婷久久一区二区三区| 国产麻豆成人传媒免费观看| 国产日韩精品一区二区三区在线| 国产91富婆露脸刺激对白| 中日韩av电影| 99国产精品久久久| 亚洲人123区| 欧美色精品天天在线观看视频| 天天综合日日夜夜精品| 欧美一区二区三区播放老司机| 欧美96一区二区免费视频| 精品少妇一区二区三区视频免付费 | av电影天堂一区二区在线| 国产精品人成在线观看免费| 99久久精品国产一区| 伊人开心综合网| 欧美年轻男男videosbes| 日韩成人av影视| 久久午夜色播影院免费高清| 成人国产精品免费观看| 一区二区三区不卡视频在线观看| 欧美日韩国产综合一区二区三区| 三级一区在线视频先锋| 欧美精品一区二区三区高清aⅴ| 成人永久看片免费视频天堂| 亚洲人123区| 欧美一二三区在线观看| 国产91在线观看丝袜| 亚洲影视资源网| 91精品久久久久久久91蜜桃| 日本在线播放一区二区三区| 日韩精品专区在线影院观看 | 欧美一级一区二区| 国产精品原创巨作av| 最近日韩中文字幕| 欧美精品 国产精品| 国产大陆精品国产| 一区二区高清在线| 欧美大片拔萝卜| 99在线精品一区二区三区| 亚洲.国产.中文慕字在线| 精品国产乱码久久久久久影片| av网站免费线看精品| 青青草成人在线观看| 国产精品萝li| 日韩一级二级三级| 99re视频精品| 蜜臀av性久久久久av蜜臀妖精 | 色综合色狠狠综合色| 天天综合网天天综合色| 亚洲国产精品99久久久久久久久| 欧美三级午夜理伦三级中视频| 极品美女销魂一区二区三区| 专区另类欧美日韩| 精品女同一区二区| 在线欧美一区二区| 国产一区二区三区在线看麻豆| 亚洲一级电影视频| 中文在线免费一区三区高中清不卡| 精品视频免费看| 北条麻妃国产九九精品视频| 日韩av中文字幕一区二区三区| 国产精品久久久久久妇女6080| 91精品国产日韩91久久久久久| a级高清视频欧美日韩| 久久精品国产免费看久久精品| 亚洲色图.com| 国产精品丝袜91| 精品国产一区二区精华| 欧美福利一区二区| 91黄视频在线观看| 99这里只有久久精品视频| 国产一区二区91| 美日韩一级片在线观看| 亚洲成人久久影院| 亚洲女同一区二区| 中文幕一区二区三区久久蜜桃| 日韩欧美在线影院| 欧美日韩午夜影院| 在线一区二区三区四区五区 | 亚洲欧美一区二区三区久本道91| 久久综合九色综合97婷婷女人| 欧美精品精品一区| 欧美性猛交xxxx黑人交| 99精品国产视频| 成人黄色在线网站| 国产一区二区不卡在线| 韩国在线一区二区| 美国av一区二区| 国产高清视频一区| 韩国中文字幕2020精品| 久久精品久久精品| 蜜臀av性久久久久蜜臀aⅴ| 视频在线观看一区| 午夜精品影院在线观看| 亚洲第一激情av| 亚洲一区免费在线观看| 亚洲美女屁股眼交| 亚洲视频 欧洲视频| 国产精品福利一区| 亚洲视频一区二区免费在线观看| 国产精品污污网站在线观看| 中文字幕乱码久久午夜不卡| 国产欧美视频在线观看| 久久精品人人做| 国产欧美日韩在线视频| 国产亚洲一区二区三区在线观看| 久久久久久久久久久电影| 久久久影院官网| 欧美韩国日本不卡| 国产精品久线在线观看| 国产精品久久久久aaaa| 亚洲女与黑人做爰| 亚洲一卡二卡三卡四卡无卡久久| 亚洲高清在线精品| 亚洲www啪成人一区二区麻豆| 午夜不卡av免费| 日本中文字幕一区二区有限公司| 日韩精品一级中文字幕精品视频免费观看 | 亚洲一区二区三区自拍| 亚洲综合成人网| 日韩在线一二三区| 久久精品国产亚洲一区二区三区 | 国产精品亲子伦对白| 亚洲人成人一区二区在线观看| 一区二区三区欧美在线观看|