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

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

?? geotrans.cpp

?? vc++數(shù)字圖像處理 ,是一本很不錯(cuò)的介紹數(shù)字圖像方面的書籍,這里有本書的全部源碼
?? CPP
?? 第 1 頁 / 共 3 頁
字號(hào):
	LocalFree(hBits);		// 返回	return TRUE;}/************************************************************************* * * 函數(shù)名稱: *   TransposeDIB() * * 參數(shù): *   LPSTR lpDIB		- 指向源DIB的指針 * * 返回值: *   BOOL               - 轉(zhuǎn)置成功返回TRUE,否則返回FALSE。 * * 說明: *   該函數(shù)用來轉(zhuǎn)置DIB圖像,即圖像x、y坐標(biāo)互換。函數(shù)將不會(huì)改變圖像的大小, * 但是圖像的高寬將互換。 * ************************************************************************/BOOL WINAPI TransposeDIB(LPSTR lpDIB){		// 圖像的寬度和高度	LONG	lWidth;	LONG	lHeight;		// 指向源圖像的指針	LPSTR	lpDIBBits;		// 指向源象素的指針	LPSTR	lpSrc;		// 指向轉(zhuǎn)置圖像對(duì)應(yīng)象素的指針	LPSTR	lpDst;	// 指向轉(zhuǎn)置圖像的指針	LPSTR	lpNewDIBBits;	HLOCAL	hNewDIBBits;		// 指向BITMAPINFO結(jié)構(gòu)的指針(Win3.0)	LPBITMAPINFOHEADER lpbmi;		// 指向BITMAPCOREINFO結(jié)構(gòu)的指針	LPBITMAPCOREHEADER lpbmc;	// 循環(huán)變量	LONG	i;	LONG	j;		// 圖像每行的字節(jié)數(shù)	LONG lLineBytes;		// 新圖像每行的字節(jié)數(shù)	LONG lNewLineBytes;	// 獲取指針	lpbmi = (LPBITMAPINFOHEADER)lpDIB;	lpbmc = (LPBITMAPCOREHEADER)lpDIB;	// 找到源DIB圖像象素起始位置	lpDIBBits = ::FindDIBBits(lpDIB);		// 獲取圖像的"寬度"(4的倍數(shù))	lWidth = ::DIBWidth(lpDIB);		// 獲取圖像的高度	lHeight = ::DIBHeight(lpDIB);		// 計(jì)算圖像每行的字節(jié)數(shù)	lLineBytes = WIDTHBYTES(lWidth * 8);		// 計(jì)算新圖像每行的字節(jié)數(shù)	lNewLineBytes = WIDTHBYTES(lHeight * 8);		// 暫時(shí)分配內(nèi)存,以保存新圖像	hNewDIBBits = LocalAlloc(LHND, lWidth * lNewLineBytes);	// 判斷是否內(nèi)存分配失敗	if (hNewDIBBits == NULL)	{		// 分配內(nèi)存失敗		return FALSE;	}		// 鎖定內(nèi)存	lpNewDIBBits = (char * )LocalLock(hNewDIBBits);		// 針對(duì)圖像每行進(jìn)行操作	for(i = 0; i < lHeight; i++)	{		// 針對(duì)每行圖像每列進(jìn)行操作		for(j = 0; j < lWidth; j++)		{						// 指向源DIB第i行,第j個(gè)象素的指針			lpSrc = (char *)lpDIBBits + lLineBytes * (lHeight - 1 - i) + j;						// 指向轉(zhuǎn)置DIB第j行,第i個(gè)象素的指針			// 注意此處lWidth和lHeight是源DIB的寬度和高度,應(yīng)該互換			lpDst = (char *)lpNewDIBBits + lNewLineBytes * (lWidth - 1 - j) + i;						// 復(fù)制象素			*lpDst = *lpSrc;					}			}		// 復(fù)制轉(zhuǎn)置后的圖像	memcpy(lpDIBBits, lpNewDIBBits, lWidth * lNewLineBytes);		// 互換DIB中圖像的高寬	if (IS_WIN30_DIB(lpDIB))	{		// 對(duì)于Windows 3.0 DIB		lpbmi->biWidth = lHeight;				lpbmi->biHeight = lWidth;	}	else	{		// 對(duì)于其它格式的DIB		lpbmc->bcWidth = (unsigned short) lHeight;		lpbmc->bcHeight = (unsigned short) lWidth;	}		// 釋放內(nèi)存	LocalUnlock(hNewDIBBits);	LocalFree(hNewDIBBits);		// 返回	return TRUE;}/************************************************************************* * * 函數(shù)名稱: *   ZoomDIB() * * 參數(shù): *   LPSTR lpDIB		- 指向源DIB的指針 *   float fXZoomRatio	- X軸方向縮放比率 *   float fYZoomRatio	- Y軸方向縮放比率 * * 返回值: *   HGLOBAL            - 縮放成功返回新DIB句柄,否則返回NULL。 * * 說明: *   該函數(shù)用來縮放DIB圖像,返回新生成DIB的句柄。 * ************************************************************************/HGLOBAL WINAPI ZoomDIB(LPSTR lpDIB, float fXZoomRatio, float fYZoomRatio){		// 源圖像的寬度和高度	LONG	lWidth;	LONG	lHeight;		// 縮放后圖像的寬度和高度	LONG	lNewWidth;	LONG	lNewHeight;		// 縮放后圖像的寬度(lNewWidth',必須是4的倍數(shù))	LONG	lNewLineBytes;		// 指向源圖像的指針	LPSTR	lpDIBBits;		// 指向源象素的指針	LPSTR	lpSrc;		// 縮放后新DIB句柄	HDIB	hDIB;		// 指向縮放圖像對(duì)應(yīng)象素的指針	LPSTR	lpDst;		// 指向縮放圖像的指針	LPSTR	lpNewDIB;	LPSTR	lpNewDIBBits;		// 指向BITMAPINFO結(jié)構(gòu)的指針(Win3.0)	LPBITMAPINFOHEADER lpbmi;		// 指向BITMAPCOREINFO結(jié)構(gòu)的指針	LPBITMAPCOREHEADER lpbmc;		// 循環(huán)變量(象素在新DIB中的坐標(biāo))	LONG	i;	LONG	j;		// 象素在源DIB中的坐標(biāo)	LONG	i0;	LONG	j0;		// 圖像每行的字節(jié)數(shù)	LONG lLineBytes;		// 找到源DIB圖像象素起始位置	lpDIBBits = ::FindDIBBits(lpDIB);		// 獲取圖像的寬度	lWidth = ::DIBWidth(lpDIB);		// 計(jì)算圖像每行的字節(jié)數(shù)	lLineBytes = WIDTHBYTES(lWidth * 8);		// 獲取圖像的高度	lHeight = ::DIBHeight(lpDIB);		// 計(jì)算縮放后的圖像實(shí)際寬度	// 此處直接加0.5是由于強(qiáng)制類型轉(zhuǎn)換時(shí)不四舍五入,而是直接截去小數(shù)部分	lNewWidth = (LONG) (::DIBWidth(lpDIB) * fXZoomRatio + 0.5);		// 計(jì)算新圖像每行的字節(jié)數(shù)	lNewLineBytes = WIDTHBYTES(lNewWidth * 8);		// 計(jì)算縮放后的圖像高度	lNewHeight = (LONG) (lHeight * fYZoomRatio + 0.5);		// 分配內(nèi)存,以保存新DIB	hDIB = (HDIB) ::GlobalAlloc(GHND, lNewLineBytes * lNewHeight + *(LPDWORD)lpDIB + ::PaletteSize(lpDIB));		// 判斷是否內(nèi)存分配失敗	if (hDIB == NULL)	{		// 分配內(nèi)存失敗		return NULL;	}		// 鎖定內(nèi)存	lpNewDIB =  (char * )::GlobalLock((HGLOBAL) hDIB);		// 復(fù)制DIB信息頭和調(diào)色板	memcpy(lpNewDIB, lpDIB, *(LPDWORD)lpDIB + ::PaletteSize(lpDIB));		// 找到新DIB象素起始位置	lpNewDIBBits = ::FindDIBBits(lpNewDIB);		// 獲取指針	lpbmi = (LPBITMAPINFOHEADER)lpNewDIB;	lpbmc = (LPBITMAPCOREHEADER)lpNewDIB;		// 更新DIB中圖像的高度和寬度	if (IS_WIN30_DIB(lpNewDIB))	{		// 對(duì)于Windows 3.0 DIB		lpbmi->biWidth = lNewWidth;		lpbmi->biHeight = lNewHeight;	}	else	{		// 對(duì)于其它格式的DIB		lpbmc->bcWidth = (unsigned short) lNewWidth;		lpbmc->bcHeight = (unsigned short) lNewHeight;	}		// 針對(duì)圖像每行進(jìn)行操作	for(i = 0; i < lNewHeight; i++)	{		// 針對(duì)圖像每列進(jìn)行操作		for(j = 0; j < lNewWidth; j++)		{						// 指向新DIB第i行,第j個(gè)象素的指針			// 注意此處寬度和高度是新DIB的寬度和高度			lpDst = (char *)lpNewDIBBits + lNewLineBytes * (lNewHeight - 1 - i) + j;						// 計(jì)算該象素在源DIB中的坐標(biāo)			i0 = (LONG) (i / fYZoomRatio + 0.5);			j0 = (LONG) (j / fXZoomRatio + 0.5);						// 判斷是否在源圖范圍內(nèi)			if( (j0 >= 0) && (j0 < lWidth) && (i0 >= 0) && (i0 < lHeight))			{								// 指向源DIB第i0行,第j0個(gè)象素的指針				lpSrc = (char *)lpDIBBits + lLineBytes * (lHeight - 1 - i0) + j0;								// 復(fù)制象素				*lpDst = *lpSrc;			}			else			{				// 對(duì)于源圖中沒有的象素,直接賦值為255				* ((unsigned char*)lpDst) = 255;			}					}			}		// 返回	return hDIB;}/************************************************************************* * * 函數(shù)名稱: *   RotateDIB() * * 參數(shù): *   LPSTR lpDIB		- 指向源DIB的指針 *   int iRotateAngle	- 旋轉(zhuǎn)的角度(0-360度) * * 返回值: *   HGLOBAL            - 旋轉(zhuǎn)成功返回新DIB句柄,否則返回NULL。 * * 說明: *   該函數(shù)用來以圖像中心為中心旋轉(zhuǎn)DIB圖像,返回新生成DIB的句柄。 * 調(diào)用該函數(shù)會(huì)自動(dòng)擴(kuò)大圖像以顯示所有的象素。函數(shù)中采用最鄰近插 * 值算法進(jìn)行插值。 * ************************************************************************/HGLOBAL WINAPI RotateDIB(LPSTR lpDIB, int iRotateAngle){		// 源圖像的寬度和高度	LONG	lWidth;	LONG	lHeight;		// 旋轉(zhuǎn)后圖像的寬度和高度	LONG	lNewWidth;	LONG	lNewHeight;		// 圖像每行的字節(jié)數(shù)	LONG	lLineBytes;		// 旋轉(zhuǎn)后圖像的寬度(lNewWidth',必須是4的倍數(shù))	LONG	lNewLineBytes;		// 指向源圖像的指針	LPSTR	lpDIBBits;		// 指向源象素的指針	LPSTR	lpSrc;		// 旋轉(zhuǎn)后新DIB句柄	HDIB	hDIB;		// 指向旋轉(zhuǎn)圖像對(duì)應(yīng)象素的指針	LPSTR	lpDst;		// 指向旋轉(zhuǎn)圖像的指針	LPSTR	lpNewDIB;	LPSTR	lpNewDIBBits;		// 指向BITMAPINFO結(jié)構(gòu)的指針(Win3.0)	LPBITMAPINFOHEADER lpbmi;		// 指向BITMAPCOREINFO結(jié)構(gòu)的指針	LPBITMAPCOREHEADER lpbmc;		// 循環(huán)變量(象素在新DIB中的坐標(biāo))	LONG	i;	LONG	j;		// 象素在源DIB中的坐標(biāo)	LONG	i0;	LONG	j0;		// 旋轉(zhuǎn)角度(弧度)	float	fRotateAngle;		// 旋轉(zhuǎn)角度的正弦和余弦	float	fSina, fCosa;		// 源圖四個(gè)角的坐標(biāo)(以圖像中心為坐標(biāo)系原點(diǎn))	float	fSrcX1,fSrcY1,fSrcX2,fSrcY2,fSrcX3,fSrcY3,fSrcX4,fSrcY4;		// 旋轉(zhuǎn)后四個(gè)角的坐標(biāo)(以圖像中心為坐標(biāo)系原點(diǎn))	float	fDstX1,fDstY1,fDstX2,fDstY2,fDstX3,fDstY3,fDstX4,fDstY4;		// 兩個(gè)中間常量	float	f1,f2;		// 找到源DIB圖像象素起始位置	lpDIBBits = ::FindDIBBits(lpDIB);		// 獲取圖像的"寬度"(4的倍數(shù))	lWidth = ::DIBWidth(lpDIB);		// 計(jì)算圖像每行的字節(jié)數(shù)	lLineBytes = WIDTHBYTES(lWidth * 8);		// 獲取圖像的高度	lHeight = ::DIBHeight(lpDIB);		// 將旋轉(zhuǎn)角度從度轉(zhuǎn)換到弧度	fRotateAngle = (float) RADIAN(iRotateAngle);		// 計(jì)算旋轉(zhuǎn)角度的正弦	fSina = (float) sin((double)fRotateAngle);		// 計(jì)算旋轉(zhuǎn)角度的余弦	fCosa = (float) cos((double)fRotateAngle);		// 計(jì)算原圖的四個(gè)角的坐標(biāo)(以圖像中心為坐標(biāo)系原點(diǎn))	fSrcX1 = (float) (- (lWidth  - 1) / 2);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品一二三| 日韩一级大片在线| 一区二区三区四区在线免费观看| 国产风韵犹存在线视精品| 国产日韩欧美精品综合| 成人h动漫精品一区二区| 亚洲精品欧美专区| 69av一区二区三区| 国产在线国偷精品免费看| 欧美国产精品专区| 色女孩综合影院| 免费成人小视频| 国产偷国产偷精品高清尤物| 91亚洲国产成人精品一区二区三| 亚洲综合一区二区精品导航| 日韩欧美国产1| 成a人片亚洲日本久久| 午夜精品久久久久久久久久久 | 不卡高清视频专区| 一区二区高清在线| 欧美大胆一级视频| 成人性生交大片免费看视频在线 | 国产无人区一区二区三区| 91在线视频播放| 精一区二区三区| 一区二区成人在线| 精品美女一区二区三区| 91在线观看污| 韩国一区二区在线观看| 1000精品久久久久久久久| 日韩一区二区精品葵司在线| 成人动漫一区二区三区| 男女男精品视频网| 亚洲老妇xxxxxx| 亚洲精品一区二区在线观看| 欧洲一区在线观看| 成人精品免费网站| 麻豆精品久久久| 亚洲在线免费播放| 国产精品久久久久久户外露出| 51久久夜色精品国产麻豆| 成人免费毛片aaaaa**| 奇米四色…亚洲| 一区二区不卡在线播放 | 91麻豆精品一区二区三区| 麻豆精品视频在线观看视频| 亚洲免费观看高清完整版在线| 精品久久人人做人人爽| 欧美日韩1234| 91日韩一区二区三区| 国产美女娇喘av呻吟久久| 日韩av电影免费观看高清完整版 | 91久久精品日日躁夜夜躁欧美| 国产一区二区三区免费看| 视频一区二区欧美| 洋洋av久久久久久久一区| 国产精品久久久久桃色tv| 久久精品人人做人人爽人人| 欧美一卡二卡在线观看| 欧美三级韩国三级日本三斤| 91啪在线观看| 99精品偷自拍| 99久久精品一区二区| 丁香激情综合五月| 国产精品99久久久久久有的能看| 美国av一区二区| 久久狠狠亚洲综合| 麻豆精品视频在线观看视频| 日韩国产欧美在线视频| 青青青爽久久午夜综合久久午夜| 午夜影院久久久| 天涯成人国产亚洲精品一区av| 一区二区三区四区五区视频在线观看| 综合久久久久久| 亚洲视频一二三区| 亚洲乱码一区二区三区在线观看| 中文字幕字幕中文在线中不卡视频| 中文欧美字幕免费| 日韩一区中文字幕| 亚洲品质自拍视频网站| 一区二区三区四区视频精品免费 | 色婷婷久久综合| 色哟哟国产精品| 欧美色国产精品| 日韩视频国产视频| 久久美女高清视频| 国产精品视频免费看| 亚洲欧美视频在线观看视频| 亚洲综合另类小说| 免费观看成人鲁鲁鲁鲁鲁视频| 日本91福利区| 国产美女主播视频一区| 成人av在线一区二区三区| 色综合色综合色综合色综合色综合| 欧洲生活片亚洲生活在线观看| 欧美乱熟臀69xxxxxx| 精品久久人人做人人爱| 国产精品毛片a∨一区二区三区| 一区在线中文字幕| 午夜精品久久久久久| 美女网站一区二区| jiyouzz国产精品久久| 欧美日韩一区视频| 久久蜜桃香蕉精品一区二区三区| 中文字幕一区二区视频| 午夜精品福利一区二区三区av| 激情小说亚洲一区| 色呦呦国产精品| 精品免费视频一区二区| 亚洲视频资源在线| 麻豆成人av在线| 91亚洲精品久久久蜜桃| 日韩一级免费一区| 亚洲欧美日韩国产一区二区三区| 偷拍一区二区三区四区| 福利视频网站一区二区三区| 在线精品视频免费播放| 337p日本欧洲亚洲大胆色噜噜| 最新久久zyz资源站| 久久精品国产99| 日本伦理一区二区| 久久久99久久| 午夜电影久久久| 国产成人av电影免费在线观看| 欧美老年两性高潮| 亚洲欧美日韩一区二区三区在线观看| 麻豆精品在线看| 91久久精品一区二区| 中文一区在线播放| 久久成人麻豆午夜电影| 欧美中文字幕一区二区三区| 国产欧美日韩麻豆91| 秋霞电影网一区二区| 在线看不卡av| 综合久久一区二区三区| 国产成人精品免费| 日韩一本二本av| 亚洲综合一区二区三区| 91一区二区在线| 国产亚洲欧美激情| 久久www免费人成看片高清| 欧美日韩国产另类不卡| 最新高清无码专区| 不卡一区在线观看| 欧美国产一区视频在线观看| 九九九精品视频| 91精品国产综合久久精品麻豆 | 97se亚洲国产综合在线| 国产精品网站一区| 奇米色777欧美一区二区| 欧美怡红院视频| 亚洲色图在线视频| 99re热视频精品| 最新国产成人在线观看| 白白色 亚洲乱淫| 欧美激情自拍偷拍| 国产91富婆露脸刺激对白| 2023国产一二三区日本精品2022| 日韩av网站在线观看| 欧美浪妇xxxx高跟鞋交| 视频一区视频二区在线观看| 欧美日韩亚洲国产综合| 亚洲国产精品一区二区www在线| 在线观看亚洲成人| 亚洲香蕉伊在人在线观| 欧美日韩高清一区| 日本sm残虐另类| 日韩欧美国产成人一区二区| 奇米影视一区二区三区小说| 欧美一级日韩一级| 久久99精品一区二区三区| 精品国产91乱码一区二区三区| 精品一区二区三区不卡| 久久久久国产成人精品亚洲午夜| 国产乱人伦偷精品视频免下载| 欧美国产精品中文字幕| 99精品1区2区| 亚洲va国产va欧美va观看| 91精品国产综合久久精品图片 | 成人免费视频app| 亚洲精品国产精品乱码不99| 欧美三级韩国三级日本一级| 日本最新不卡在线| 欧美精品一区二区三区蜜桃视频 | 2020国产精品自拍| 成人一区二区视频| 一区二区三区**美女毛片| 欧美日韩国产一二三| 久久疯狂做爰流白浆xx| 中文av字幕一区| 在线观看区一区二| 免费成人av资源网| 日本一区二区成人在线| 色先锋久久av资源部| 蜜桃久久久久久| 国产精品理伦片| 欧美精品在线观看一区二区| 国产中文字幕一区| 一区二区三区四区乱视频| 色综合久久66|