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

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

?? image.c

?? 兩幅圖像匹配算法
?? C
?? 第 1 頁 / 共 5 頁
字號:
	return(0);	}    }/* * Take the comment which was accumulated from the input file, copy it * and tack it into this header. */static booleansetComment(ImageHeader *header){    assert(header != (ImageHeader *)NULL);		          if (incommentsize == 0) {	/* There was no comment in the input file */	header->comment = (char *)NULL;	return(TRUE);	}    /* The last thing in the comment should be a newline - clobber it */    assert(incomment[incommentsize - 1] == '\n');    incomment[incommentsize] = '\0';    header->comment = strdup(incomment);    if (header->comment == (char *)NULL) {	return(FALSE);	}    return(TRUE);    }void *imNew(ImageType type, unsigned width, unsigned height){    return(imNewOffset(type, width, height, 0, 0));    }void *imNewOffset(ImageType type, unsigned width, unsigned height,	    int xbase, int ybase){    void **areaPtr;    ImageHeader *newHeader;    /* Allocate and initialise the header */    newHeader = (ImageHeader *)malloc(sizeof(* newHeader));    if (newHeader == (ImageHeader *)NULL) {	return((void *)NULL);	}    newHeader->width = width;    newHeader->height = height;    newHeader->xbase = xbase;    newHeader->ybase = ybase;    newHeader->tag = type;    newHeader->comment = (char *)NULL;    /*     * Allocate the data area for the appropriate type of image,      * allocate and initialise the actual *Image and return it.     * This exists in one form for each type of Image.     */    switch(type) {      case IMAGE_GRAY: {	GrayImage newGray;	newGray = (GrayImage)malloc(sizeof(* newGray));	if (newGray == (GrayImage)NULL) {	    free((void *)newHeader);	    return((void *)NULL);	    }	areaPtr = allocImage(width, height, xbase, ybase, sizeof(unsigned char));	if (areaPtr == (void **)NULL) {	    free((void *)newHeader);	    free((void *)newGray);	    return((void *)NULL);	    }	newHeader->body.grayptr = newGray;	newGray->header = newHeader;	newGray->data = (unsigned char **)areaPtr;	return((void *)newGray);	break;			/* Paranoia strikes */	}      case IMAGE_FLOAT: {	FloatImage newFloat;	newFloat = (FloatImage)malloc(sizeof(* newFloat));	if (newFloat == (FloatImage)NULL) {	    free((void *)newHeader);	    return((void *)NULL);	    }	areaPtr = allocImage(width, height, xbase, ybase, sizeof(float));	if (areaPtr == (void **)NULL) {	    free((void *)newHeader);	    free((void *)newFloat);	    return((void *)NULL);	    }	newHeader->body.floatptr = newFloat;	newFloat->header = newHeader;	newFloat->data = (float **)areaPtr;	return((void *)newFloat);	break;	}      case IMAGE_RGB: {	RGBImage newRGB;	newRGB = (RGBImage)malloc(sizeof(* newRGB));	if (newRGB == (RGBImage)NULL) {	    free((void *)newHeader);	    return((void *)NULL);	    }	areaPtr = allocImage(width, height, xbase, ybase, sizeof(RGB));	if (areaPtr == (void **)NULL) {	    free((void *)newHeader);	    free((void *)newRGB);	    return((void *)NULL);	    }	newHeader->body.RGBptr = newRGB;	newRGB->header = newHeader;	newRGB->data = (RGB **)areaPtr;	return((void *)newRGB);	break;	}      case IMAGE_DOUBLE: {	DoubleImage newDouble;	newDouble = (DoubleImage)malloc(sizeof(* newDouble));	if (newDouble == (DoubleImage)NULL) {	    free((void *)newHeader);	    return((void *)NULL);	    }	areaPtr = allocImage(width, height, xbase, ybase, sizeof(double));	if (areaPtr == (void **)NULL) {	    free((void *)newHeader);	    free((void *)newDouble);	    return((void *)NULL);	    }	newHeader->body.doubleptr = newDouble;	newDouble->header = newHeader;	newDouble->data = (double **)areaPtr;	return((void *)newDouble);	break;	}      case IMAGE_BINARY: {	BinaryImage newBinary;	newBinary = (BinaryImage)malloc(sizeof(* newBinary));	if (newBinary == (BinaryImage)NULL) {	    free((void *)newHeader);	    return((void *)NULL);	    }	areaPtr = allocImage(width, height, xbase, ybase, sizeof(char));	if (areaPtr == (void **)NULL) {	    free((void *)newHeader);	    free((void *)newBinary);	    return((void *)NULL);	    }	newHeader->body.binaryptr = newBinary;	newBinary->header = newHeader;	newBinary->data = (char **)areaPtr;	return((void *)newBinary);	break;	}      case IMAGE_LONG: {	LongImage newLong;	newLong = (LongImage)malloc(sizeof(* newLong));	if (newLong == (LongImage)NULL) {	    free((void *)newHeader);	    return((void *)NULL);	    }	areaPtr = allocImage(width, height, xbase, ybase, sizeof(long));	if (areaPtr == (void **)NULL) {	    free((void *)newHeader);	    free((void *)newLong);	    return((void *)NULL);	    }	newHeader->body.longptr = newLong;	newLong->header = newHeader;	newLong->data = (long **)areaPtr;	return((void *)newLong);	break;	}      case IMAGE_PTR: {	PtrImage newPtr;	newPtr = (PtrImage)malloc(sizeof(* newPtr));	if (newPtr == (PtrImage)NULL) {	    free((void *)newHeader);	    return((void *)NULL);	    }	areaPtr = allocImage(width, height, xbase, ybase, sizeof(void *));	if (areaPtr == (void **)NULL) {	    free((void *)newHeader);	    free((void *)newPtr);	    return((void *)NULL);	    }	newHeader->body.ptrptr = newPtr;	newPtr->header = newHeader;	newPtr->data = (void ***)areaPtr;	return((void *)newPtr);	break;	}      case IMAGE_SHORT: {	ShortImage newShort;	newShort = (ShortImage)malloc(sizeof(* newShort));	if (newShort == (ShortImage)NULL) {	    free((void *)newHeader);	    return((void *)NULL);	    }	areaPtr = allocImage(width, height, xbase, ybase, sizeof(short));	if (areaPtr == (void **)NULL) {	    free((void *)newHeader);	    free((void *)newShort);	    return((void *)NULL);	    }	newHeader->body.shortptr = newShort;	newShort->header = newHeader;	newShort->data = (short **)areaPtr;	return((void *)newShort);	break;	}      default: {	panic("bad image tag");	}      }    /*NOTREACHED*/    }voidim_Free_(void *im, ImageHeader *header){    void **areaPtr;    unsigned el_size;    int xbase, ybase;    assert(im != (void *)NULL);    assert(header != (ImageHeader *)NULL);    /* Pull out the data area and the size of the element */    getAreaAndSize(im, header, &areaPtr, &el_size);    /* and get rid of all of them */    xbase = header->xbase;    ybase = header->ybase;    free((void *)im);    if (header->comment != (char *)NULL) {	free((void *)header->comment);	}    free((void *)header);    freeImage(areaPtr, xbase, ybase, el_size);    }voidim_SetOffset_(void *im, ImageHeader *header, int newxbase, int newybase){    int y;    int oldxbase;    int oldybase;    assert(im != (void *)NULL);    assert(header != (ImageHeader *)NULL);    oldxbase = header->xbase;    oldybase = header->ybase;#define	FIX_PTRS(im, imtype) \    { \	imtype vim = (imtype)(im); \	for (y = imGetYBase(vim); y <= imGetYMax(vim); y++) { \	    vim->data[y] += (oldxbase - newxbase); \	    } \	vim->data += (oldybase - newybase); \    }    switch(header->tag) {      case IMAGE_GRAY:		FIX_PTRS(im, GrayImage);	break;      case IMAGE_FLOAT:		FIX_PTRS(im, FloatImage);	break;      case IMAGE_RGB:		FIX_PTRS(im, RGBImage);		break;      case IMAGE_DOUBLE:	FIX_PTRS(im, DoubleImage);	break;      case IMAGE_BINARY:	FIX_PTRS(im, BinaryImage);	break;      case IMAGE_LONG:		FIX_PTRS(im, LongImage);	break;      case IMAGE_PTR:		FIX_PTRS(im, PtrImage);		break;      case IMAGE_SHORT:		FIX_PTRS(im, ShortImage);	break;      default: {	panic("bad image tag");	}      }#undef	FIX_PTRS    header->xbase = newxbase;    header->ybase = newybase;    }void *imLoad(ImageType type, char *filename){    FILE *inFile;    void *im;    /* Open the file, imLoadF on it, then close it */    assert(filename != (char *)NULL);    inFile = fopen(filename, "r");    if (inFile == (FILE *)NULL) {	return((void *)NULL);	}    im = imLoadF(type, inFile);    if (fclose(inFile) == EOF) {	/*	 * It would be a strange day that fclose on a read-only file	 * gave an error, but...	 *	 * Sigh - have to track down the image's header so we can free it.	 */	if (im) {	    ImageHeader *header = getHeader(im, type);	    im_Free_(im, header);	    }	return((void *)NULL);	}    return(im);    }void *imLoadF(ImageType type, FILE *inFile){    char fileHeader[PBM_MAX_LINELEN];    void *im;    int c;    int i;    ImageType filetype;    void * (*readfunc)(FILE *inFile, ImageHeader **readimHeader);    void *readim;    ImageHeader *readimHeader;    assert(inFile != (FILE *)NULL);    /*     * Read up to the first whitespace in order to find the file's header.     */    i = 0;    do {	c = getc(inFile);	if (c == EOF) {	    return((void *)NULL);	    }	fileHeader[i++] = c;	} while (!isspace(c));    fileHeader[--i] = '\0';		/* Clobber the whitespace */    /* Determine who is supposed to handle this sort of file */    for (i = 0; i < NREADERS; i++) {	if (strcmp(fileHeader, fileReaders[i].filetag) == 0) {	    /* Found it */	    filetype = fileReaders[i].filetype;	    readfunc = fileReaders[i].readfunc;	    break;	    }	}    if (i == NREADERS) {	/* Didn't match any of the ones in the table - unknown type. */	return((void *)NULL);	}    /* Clear the comment buffer */    incommentsize = 0;    /* Read in the file */    readim = (*readfunc)(inFile, &readimHeader);    if (readim == (void *)NULL) {	/* Didn't load for whatever reason */	return((void *)NULL);	}    if (filetype == type) {	/* The file was of the expected type - no conversion required */	if (!setComment(readimHeader)) {	    /* Sigh - stumbled over the comment */	    im_Free_(readim, readimHeader);	    return((void *)NULL);	    }	return(readim);	}    /*     * OK. We read in a file, and it wasn't what we expected. We get to     * promote it to the expected image type, if that's defined.     *     * If that conversion isn't a promotion, kick out.     */    if (!convertTable[filetype][type].isPromotion) {	im_Free_(readim, readimHeader);	return((void *)NULL);	}        /* Convert... */    im = im_Promote_(readim, readimHeader, type);    if (im == (void *)NULL) {	/* Didn't work. */	im_Free_(readim, readimHeader);	return((void *)NULL);	}    /* Kill the image we read in, and return the promoted one. */    im_Free_(readim, readimHeader);    /* Stick the comment from the file into the header */    readimHeader = getHeader(im, type);    if (!setComment(readimHeader)) {	/* Died in the comment copy */	im_Free_(im, readimHeader);	return((void *)NULL);	}    return(im);    }intim_Save_(void *im, ImageHeader *header, char *filename){    FILE *outFile;        assert(filename != (char *)NULL);    assert(im != (void *)NULL);    assert(header != (ImageHeader *)NULL);    /* Open the file, imSaveF on it, then close it */    outFile = fopen(filename, "w");    if (outFile == (FILE *)NULL) {	return(-1);	}    /* Write the image */    if (im_SaveF_(im, header, outFile) == -1) {	(void)fclose(outFile);	return(-1);	}    /* and close the file */    if (fclose(outFile) == EOF) {	/* Bah. */	return(-1);	}    return(0);    }intim_SaveF_(void *im, ImageHeader *header, FILE *outFile){    void *rect;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久三| 亚洲成人你懂的| 久久综合九色综合久久久精品综合 | 三级成人在线视频| 偷窥少妇高潮呻吟av久久免费| 亚洲成人一区二区| 五月天亚洲婷婷| 裸体一区二区三区| 久久成人久久鬼色| 国产一区二区0| 成人免费看视频| 色域天天综合网| 欧美伦理视频网站| 日韩小视频在线观看专区| 精品国产91久久久久久久妲己 | 亚洲成人av电影在线| 日韩精品亚洲一区二区三区免费| 日韩成人伦理电影在线观看| 久久99久久99小草精品免视看| 国产剧情一区二区三区| 国产999精品久久| 色欧美日韩亚洲| 欧美精品第1页| 精品国产免费一区二区三区香蕉| 久久精品一级爱片| 日韩毛片一二三区| 日韩精品久久久久久| 国产精品自拍三区| 色视频成人在线观看免| 欧美一区二区三区爱爱| 国产欧美精品在线观看| 一区二区三区蜜桃网| 秋霞午夜鲁丝一区二区老狼| 国产精品一区二区黑丝 | 国产精品久久免费看| 一级特黄大欧美久久久| 麻豆精品久久久| 99久久精品久久久久久清纯| 欧美精品成人一区二区三区四区| 国产视频一区在线观看 | av中文一区二区三区| 欧美三级韩国三级日本一级| 精品人伦一区二区色婷婷| 国产精品毛片高清在线完整版| 性做久久久久久久久| 国产xxx精品视频大全| 欧美性生交片4| 久久精品一区蜜桃臀影院| 亚洲成a人片在线不卡一二三区 | 欧美日韩电影一区| 国产午夜精品一区二区三区视频| 一区二区三区中文在线| 精品一二三四在线| 精品视频在线免费看| 国产精品你懂的在线欣赏| 日本欧美一区二区| 一本色道a无线码一区v| 久久综合狠狠综合| 丝袜a∨在线一区二区三区不卡 | 久久精品夜色噜噜亚洲a∨| 亚洲成人动漫在线免费观看| 懂色av中文一区二区三区| 6080国产精品一区二区| 一区二区三区日本| 国产传媒久久文化传媒| 欧美精品久久99| 一区二区三区免费在线观看| 成人免费毛片aaaaa**| 精品国产伦一区二区三区观看方式| 亚洲综合色婷婷| 99视频在线观看一区三区| 精品国产不卡一区二区三区| 视频一区免费在线观看| 在线观看国产91| 1区2区3区欧美| 国产91清纯白嫩初高中在线观看| 欧美日韩精品一区二区| 亚洲三级在线观看| 成人精品小蝌蚪| 日本一区二区三区久久久久久久久不| 日韩电影在线免费| 欧美日本韩国一区二区三区视频| 日韩美女久久久| 不卡在线观看av| 中文av字幕一区| 国产成人av在线影院| 精品国产乱码久久| 精品系列免费在线观看| 91精品在线一区二区| 亚洲va中文字幕| 欧美午夜电影网| 亚洲综合图片区| 色88888久久久久久影院野外 | 精品一区二区三区视频在线观看 | 国产日韩欧美高清在线| 国精品**一区二区三区在线蜜桃| 91精品国产综合久久精品图片| 亚洲国产日韩a在线播放| 欧美亚洲动漫另类| 亚洲一区国产视频| 欧美日韩精品一区二区天天拍小说| 亚洲一区二区三区三| 欧美日韩一级片在线观看| 亚洲国产日韩精品| 欧美久久久一区| 免费一级片91| 亚洲精品一线二线三线无人区| 韩国成人精品a∨在线观看| 26uuu欧美| 白白色亚洲国产精品| 亚洲另类在线一区| 欧美优质美女网站| 视频精品一区二区| 精品嫩草影院久久| 国产精品一区二区果冻传媒| 全部av―极品视觉盛宴亚洲| 欧美一区在线视频| 国内外精品视频| 国产精品高潮呻吟| 欧美在线一二三| 日本午夜一区二区| 久久久久久麻豆| 91网上在线视频| 亚洲成人动漫av| 久久综合色一综合色88| 成人性生交大片免费看在线播放| 亚洲免费成人av| 91精品国产91久久综合桃花| 国产一区二区免费视频| **网站欧美大片在线观看| 欧美丝袜丝交足nylons图片| 美腿丝袜亚洲综合| 日本一区二区三区四区在线视频 | 欧美日韩一区二区三区不卡| 免费视频一区二区| 国产欧美日韩在线视频| 欧美中文字幕久久| 精品综合久久久久久8888| 国产精品美女久久久久久久久| 欧美视频一区二区三区| 国产专区欧美精品| 亚洲精品乱码久久久久久久久 | 欧美精品第一页| 国产不卡免费视频| 亚洲国产一区二区视频| 久久嫩草精品久久久精品| 日本韩国欧美三级| 国产做a爰片久久毛片| 亚洲综合一区二区精品导航| 亚洲精品在线观看网站| 欧美中文字幕一二三区视频| 国产成人综合在线| 亚洲电影一区二区三区| 国产日韩欧美在线一区| 欧美丰满美乳xxx高潮www| jlzzjlzz欧美大全| 看电影不卡的网站| 亚洲国产成人av| 国产精品毛片久久久久久久| 欧美一级精品在线| 在线免费观看一区| 国产v综合v亚洲欧| 蜜臀av一区二区在线观看| 18欧美亚洲精品| 久久亚洲一级片| 欧美美女网站色| 色狠狠色噜噜噜综合网| 国产69精品久久777的优势| 日韩制服丝袜先锋影音| 亚洲蜜臀av乱码久久精品蜜桃| 日韩电影在线观看电影| 亚洲欧美aⅴ...| 国产日产亚洲精品系列| 精品国产伦一区二区三区观看方式 | 欧美一区日本一区韩国一区| 色先锋资源久久综合| 国产成人啪免费观看软件| 久久精品99国产国产精| 午夜久久久久久电影| 一区二区三区精品| 欧美巨大另类极品videosbest| 色一情一乱一乱一91av| 99精品视频在线观看免费| 国产精品一区一区| 欧美96一区二区免费视频| 亚瑟在线精品视频| 亚洲一区二区三区小说| 亚洲激情图片qvod| 亚洲人吸女人奶水| 亚洲欧洲另类国产综合| 国产午夜一区二区三区| 久久久久久久久久电影| 精品日韩99亚洲| 欧美一激情一区二区三区| 欧美日韩国产色站一区二区三区| 91丨porny丨蝌蚪视频| 波波电影院一区二区三区| 成人高清免费观看| voyeur盗摄精品| 成人app网站|