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

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

?? geotrans.cpp

?? vc++數(shù)字圖像處理 ,是一本很不錯(cuò)的介紹數(shù)字圖像方面的書籍,這里有本書的全部源碼
?? CPP
?? 第 1 頁 / 共 3 頁
字號(hào):
/************************************************************************** *  文件名:GeoTrans.cpp * *  圖像幾何變換API函數(shù)庫: * *  TranslationDIB1()   - 圖像平移 *  TranslationDIB()    - 圖像平移 *  MirrorDIB()		    - 圖像鏡像 *  TransposeDIB()		- 圖像轉(zhuǎn)置 *  ZoomDIB()			- 圖像縮放 *  RotateDIB()			- 圖像旋轉(zhuǎn) * *************************************************************************/#include "stdafx.h"#include "geotrans.h"#include "DIBAPI.h"#include <math.h>#include <direct.h>/************************************************************************* * * 函數(shù)名稱: *   TranslationDIB1() * * 參數(shù): *   LPSTR lpDIBBits    - 指向源DIB圖像指針 *   LONG  lWidth       - 源圖像寬度(象素?cái)?shù)) *   LONG  lHeight      - 源圖像高度(象素?cái)?shù)) *   LONG  lXOffset     - X軸平移量(象素?cái)?shù)) *   LONG  lYOffset     - Y軸平移量(象素?cái)?shù)) * * 返回值: *   BOOL               - 平移成功返回TRUE,否則返回FALSE。 * * 說明: *   該函數(shù)用來水平移動(dòng)DIB圖像。函數(shù)不會(huì)改變圖像的大小,移出的部分圖像 * 將截去,空白部分用白色填充。 * ************************************************************************/BOOL WINAPI TranslationDIB1(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, LONG lXOffset, LONG lYOffset){	// 指向源圖像的指針	LPSTR	lpSrc;		// 指向要復(fù)制區(qū)域的指針	LPSTR	lpDst;		// 指向復(fù)制圖像的指針	LPSTR	lpNewDIBBits;	HLOCAL	hNewDIBBits;	// 象素在新DIB中的坐標(biāo)	LONG	i;	LONG	j;		// 象素在源DIB中的坐標(biāo)	LONG	i0;	LONG	j0;		// 圖像每行的字節(jié)數(shù)	LONG lLineBytes;		// 計(jì)算圖像每行的字節(jié)數(shù)	lLineBytes = WIDTHBYTES(lWidth * 8);		// 暫時(shí)分配內(nèi)存,以保存新圖像	hNewDIBBits = LocalAlloc(LHND, lLineBytes * lHeight);	if (hNewDIBBits == NULL)	{		// 分配內(nèi)存失敗		return FALSE;	}		// 鎖定內(nèi)存	lpNewDIBBits = (char * )LocalLock(hNewDIBBits);		// 每行	for(i = 0; i < lHeight; i++)	{		// 每列		for(j = 0; j < lWidth; j++)		{			// 指向新DIB第i行,第j個(gè)象素的指針			// 注意由于DIB中圖像第一行其實(shí)保存在最后一行的位置,因此lpDst			// 值不是(char *)lpNewDIBBits + lLineBytes * i + j,而是			// (char *)lpNewDIBBits + lLineBytes * (lHeight - 1 - i) + j			lpDst = (char *)lpNewDIBBits + lLineBytes * (lHeight - 1 - i) + j;						// 計(jì)算該象素在源DIB中的坐標(biāo)			i0 = i - lXOffset;			j0 = j - lYOffset;						// 判斷是否在源圖范圍內(nèi)			if( (j0 >= 0) && (j0 < lWidth) && (i0 >= 0) && (i0 < lHeight))			{				// 指向源DIB第i0行,第j0個(gè)象素的指針				// 同樣要注意DIB上下倒置的問題				lpSrc = (char *)lpDIBBits + lLineBytes * (lHeight - 1 - i0) + j0;								// 復(fù)制象素				*lpDst = *lpSrc;			}			else			{				// 對(duì)于源圖中沒有的象素,直接賦值為255				* ((unsigned char*)lpDst) = 255;			}					}	}		// 復(fù)制平移后的圖像	memcpy(lpDIBBits, lpNewDIBBits, lLineBytes * lHeight);		// 釋放內(nèi)存	LocalUnlock(hNewDIBBits);	LocalFree(hNewDIBBits);		// 返回	return TRUE;}/************************************************************************* * * 函數(shù)名稱: *   TranslationDIB() * * 參數(shù): *   LPSTR lpDIBBits    - 指向源DIB圖像指針 *   LONG  lWidth       - 源圖像寬度(象素?cái)?shù)) *   LONG  lHeight      - 源圖像高度(象素?cái)?shù)) *   LONG  lXOffset     - X軸平移量(象素?cái)?shù)) *   LONG  lYOffset     - Y軸平移量(象素?cái)?shù)) * * 返回值: *   BOOL               - 平移成功返回TRUE,否則返回FALSE。 * * 說明: *   該函數(shù)用來水平移動(dòng)DIB圖像。函數(shù)不會(huì)改變圖像的大小,移出的部分圖像 * 將截去,空白部分用白色填充。 * ************************************************************************/BOOL WINAPI TranslationDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, LONG lXOffset, LONG lYOffset){	// 平移后剩余圖像在源圖像中的位置(矩形區(qū)域)	CRect	rectSrc;		// 平移后剩余圖像在新圖像中的位置(矩形區(qū)域)	CRect	rectDst;		// 指向源圖像的指針	LPSTR	lpSrc;		// 指向要復(fù)制區(qū)域的指針	LPSTR	lpDst;		// 指向復(fù)制圖像的指針	LPSTR	lpNewDIBBits;	HLOCAL	hNewDIBBits;		// 指明圖像是否全部移去可視區(qū)間	BOOL	bVisible;	// 循環(huán)變量	LONG	i;		// 圖像每行的字節(jié)數(shù)	LONG lLineBytes;		// 計(jì)算圖像每行的字節(jié)數(shù)	lLineBytes = WIDTHBYTES(lWidth * 8);		// 賦初值	bVisible = TRUE;		// 計(jì)算rectSrc和rectDst的X坐標(biāo)	if (lXOffset <= -lWidth)	{		// X軸方向全部移出可視區(qū)域		bVisible = FALSE;	}	else if (lXOffset <= 0)	{		// 移動(dòng)后,有圖區(qū)域左上角X坐標(biāo)為0		rectDst.left = 0;				// 移動(dòng)后,有圖區(qū)域右下角X坐標(biāo)為lWidth - |lXOffset| = lWidth + lXOffset		rectDst.right = lWidth + lXOffset;	}	else if (lXOffset < lWidth)	{		// 移動(dòng)后,有圖區(qū)域左上角X坐標(biāo)為lXOffset		rectDst.left = lXOffset;				// 移動(dòng)后,有圖區(qū)域右下角X坐標(biāo)為lWidth		rectDst.right = lWidth;	}	else	{		// X軸方向全部移出可視區(qū)域		bVisible = FALSE;	}		// 平移后剩余圖像在源圖像中的X坐標(biāo)	rectSrc.left = rectDst.left - lXOffset;	rectSrc.right = rectDst.right - lXOffset;		//  計(jì)算rectSrc和rectDst的Y坐標(biāo)	if (lYOffset <= -lHeight)	{		// Y軸方向全部移出可視區(qū)域		bVisible = FALSE;	}	else if (lYOffset <= 0)	{		// 移動(dòng)后,有圖區(qū)域左上角Y坐標(biāo)為0		rectDst.top = 0;				// 移動(dòng)后,有圖區(qū)域右下角Y坐標(biāo)為lHeight - |lYOffset| = lHeight + lYOffset		rectDst.bottom = lHeight + lYOffset;	}	else if (lYOffset < lHeight)	{		// 移動(dòng)后,有圖區(qū)域左上角Y坐標(biāo)為lYOffset		rectDst.top = lYOffset;				// 移動(dòng)后,有圖區(qū)域右下角Y坐標(biāo)為lHeight		rectDst.bottom = lHeight;	}	else	{		// X軸方向全部移出可視區(qū)域		bVisible = FALSE;	}		// 平移后剩余圖像在源圖像中的Y坐標(biāo)	rectSrc.top = rectDst.top - lYOffset;	rectSrc.bottom = rectDst.bottom - lYOffset;		// 暫時(shí)分配內(nèi)存,以保存新圖像	hNewDIBBits = LocalAlloc(LHND, lLineBytes * lHeight);	if (hNewDIBBits == NULL)	{		// 分配內(nèi)存失敗		return FALSE;	}		// 鎖定內(nèi)存	lpNewDIBBits = (char * )LocalLock(hNewDIBBits);		// 初始化新分配的內(nèi)存,設(shè)定初始值為255	lpDst = (char *)lpNewDIBBits;	memset(lpDst, (BYTE)255, lLineBytes * lHeight);		// 如果有部分圖像可見	if (bVisible)	{		// 平移圖像		for(i = 0; i < (rectSrc.bottom - rectSrc.top); i++)		{			// 要復(fù)制區(qū)域的起點(diǎn),注意由于DIB圖像內(nèi)容是上下倒置的,第一行內(nèi)容是保存在最后			// 一行,因此復(fù)制區(qū)域的起點(diǎn)不是lpDIBBits + lLineBytes * (i + rectSrc.top) + 			// rectSrc.left,而是 lpDIBBits + lLineBytes * (lHeight - i - rectSrc.top - 1) + 			// rectSrc.left。						lpSrc = (char *)lpDIBBits + lLineBytes * (lHeight - i - rectSrc.top - 1) + rectSrc.left;						// 要目標(biāo)區(qū)域的起點(diǎn)			// 同樣注意上下倒置的問題。			lpDst = (char *)lpNewDIBBits + lLineBytes * (lHeight - i - rectDst.top - 1) + 				rectDst.left;						// 拷貝每一行,寬度為rectSrc.right - rectSrc.left			memcpy(lpDst, lpSrc, rectSrc.right - rectSrc.left);					}	}	// 復(fù)制平移后的圖像	memcpy(lpDIBBits, lpNewDIBBits, lLineBytes * lHeight);		// 釋放內(nèi)存	LocalUnlock(hNewDIBBits);	LocalFree(hNewDIBBits);		// 返回	return TRUE;}/************************************************************************* * * 函數(shù)名稱: *   MirrorDIB() * * 參數(shù): *   LPSTR lpDIBBits    - 指向源DIB圖像指針 *   LONG  lWidth       - 源圖像寬度(象素?cái)?shù)) *   LONG  lHeight      - 源圖像高度(象素?cái)?shù)) *   BOOL  bDirection   - 鏡像的方向,TRUE表示水平鏡像,F(xiàn)ALSE表示垂直鏡像 * * 返回值: *   BOOL               - 鏡像成功返回TRUE,否則返回FALSE。 * * 說明: *   該函數(shù)用來鏡像DIB圖像。可以指定鏡像的方式是水平還是垂直。 * ************************************************************************/BOOL WINAPI MirrorDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, BOOL bDirection){		// 指向源圖像的指針	LPSTR	lpSrc;		// 指向要復(fù)制區(qū)域的指針	LPSTR	lpDst;		// 指向復(fù)制圖像的指針	LPSTR	lpBits;	HLOCAL	hBits;	// 循環(huán)變量	LONG	i;	LONG	j;		// 圖像每行的字節(jié)數(shù)	LONG lLineBytes;		// 計(jì)算圖像每行的字節(jié)數(shù)	lLineBytes = WIDTHBYTES(lWidth * 8);		// 暫時(shí)分配內(nèi)存,以保存一行圖像	hBits = LocalAlloc(LHND, lLineBytes);	if (hBits == NULL)	{		// 分配內(nèi)存失敗		return FALSE;	}		// 鎖定內(nèi)存	lpBits = (char * )LocalLock(hBits);		// 判斷鏡像方式	if (bDirection)	{		// 水平鏡像				// 針對(duì)圖像每行進(jìn)行操作		for(i = 0; i < lHeight; i++)		{			// 針對(duì)每行圖像左半部分進(jìn)行操作			for(j = 0; j < lWidth / 2; j++)			{								// 指向倒數(shù)第i行,第j個(gè)象素的指針				lpSrc = (char *)lpDIBBits + lLineBytes * i + j;								// 指向倒數(shù)第i行,倒數(shù)第j個(gè)象素的指針				lpDst = (char *)lpDIBBits + lLineBytes * (i + 1) - j;								// 備份一個(gè)象素				*lpBits = *lpDst;								// 將倒數(shù)第i行,第j個(gè)象素復(fù)制到倒數(shù)第i行,倒數(shù)第j個(gè)象素				*lpDst = *lpSrc;								// 將倒數(shù)第i行,倒數(shù)第j個(gè)象素復(fù)制到倒數(shù)第i行,第j個(gè)象素				*lpSrc = *lpBits;			}					}	}	else	{		// 垂直鏡像		// 針對(duì)上半圖像進(jìn)行操作		for(i = 0; i < lHeight / 2; i++)		{						// 指向倒數(shù)第i行象素起點(diǎn)的指針			lpSrc = (char *)lpDIBBits + lLineBytes * i;						// 指向第i行象素起點(diǎn)的指針			lpDst = (char *)lpDIBBits + lLineBytes * (lHeight - i - 1);						// 備份一行,寬度為lWidth			memcpy(lpBits, lpDst, lLineBytes);						// 將倒數(shù)第i行象素復(fù)制到第i行			memcpy(lpDst, lpSrc, lLineBytes);						// 將第i行象素復(fù)制到倒數(shù)第i行			memcpy(lpSrc, lpBits, lLineBytes);					}	}		// 釋放內(nèi)存	LocalUnlock(hBits);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区日韩精品| 丁香亚洲综合激情啪啪综合| 中文字幕电影一区| 制服丝袜av成人在线看| 成人黄动漫网站免费app| 日韩二区三区在线观看| 综合av第一页| 欧美国产成人精品| 日韩精品一区在线| 欧美性受xxxx| 色婷婷av久久久久久久| 国产成人自拍高清视频在线免费播放| 亚洲福利电影网| 亚洲啪啪综合av一区二区三区| 久久综合久久鬼色| 欧美一区二区三区播放老司机| 91老师国产黑色丝袜在线| 国产一区二区主播在线| 日本欧洲一区二区| 亚洲电影一区二区三区| 亚洲日本中文字幕区| 中文字幕不卡在线观看| 久久久99精品久久| 欧美va亚洲va国产综合| 日韩一区二区精品在线观看| 欧美巨大另类极品videosbest | 蜜臀av性久久久久av蜜臀妖精| 中文字幕在线视频一区| 国产午夜亚洲精品不卡| 精品国产乱码久久久久久闺蜜| 欧美一区二区三区婷婷月色| 欧美精品在线观看一区二区| 欧美色爱综合网| 精品视频一区二区三区免费| 欧美系列亚洲系列| 欧美喷潮久久久xxxxx| 欧美日韩一区小说| 欧美日韩dvd在线观看| 欧美情侣在线播放| 在线播放国产精品二区一二区四区 | 亚洲精品国产a久久久久久| 国产欧美日韩在线视频| 国产性色一区二区| 欧美国产一区二区在线观看| 欧美激情综合五月色丁香| 国产日韩欧美综合在线| 国产精品三级视频| 亚洲免费观看高清完整版在线观看 | 91丨porny丨首页| 91麻豆国产福利在线观看| 色综合一个色综合亚洲| 在线观看视频欧美| 欧美一卡2卡3卡4卡| 精品人伦一区二区色婷婷| 国产农村妇女精品| 亚洲人亚洲人成电影网站色| 一区二区三区成人| 日韩av一级片| 国产精品资源在线观看| 成人午夜视频网站| 日本精品视频一区二区| 88在线观看91蜜桃国自产| 日韩三级伦理片妻子的秘密按摩| 精品毛片乱码1区2区3区| 国产精品无圣光一区二区| 一区二区三区在线观看国产| 五月综合激情网| 国产高清精品网站| 日本福利一区二区| 欧美一区二区视频免费观看| 久久久精品tv| 亚洲成人高清在线| 国内外成人在线| 91激情在线视频| 欧美tk—视频vk| 亚洲少妇中出一区| 久久丁香综合五月国产三级网站| 成人国产一区二区三区精品| 欧美日韩综合不卡| 国产精品污www在线观看| 亚洲成精国产精品女| 国产成人一区在线| 欧美高清视频一二三区| 国产精品色婷婷| 日本亚洲天堂网| 99视频一区二区三区| 欧美一区二区三区的| 成人免费在线视频| 美女视频黄久久| 在线区一区二视频| 久久久久久久久久久黄色| 亚洲va欧美va人人爽午夜| 高清shemale亚洲人妖| 欧美无人高清视频在线观看| 欧美国产综合一区二区| 麻豆国产欧美一区二区三区| 色哟哟欧美精品| 国产亚洲自拍一区| 日韩电影免费在线看| 91丝袜国产在线播放| 国产午夜一区二区三区| 久久精品国产澳门| 欧美理论在线播放| 亚洲天堂网中文字| 国产不卡一区视频| 日韩欧美中文字幕制服| 亚洲一级片在线观看| 99这里都是精品| 久久精品视频网| 美女性感视频久久| 欧美日韩国产123区| 亚洲美女偷拍久久| 不卡一区中文字幕| 久久久精品国产免大香伊| 另类综合日韩欧美亚洲| 8v天堂国产在线一区二区| 一区二区三区不卡视频| 91免费国产在线观看| 国产精品久久久99| 国产传媒欧美日韩成人| 欧美岛国在线观看| 秋霞电影网一区二区| 欧美日本在线看| 天天爽夜夜爽夜夜爽精品视频| 欧美三级电影网站| 亚洲va欧美va国产va天堂影院| 91黄视频在线| ...xxx性欧美| 99精品欧美一区二区三区小说 | 国产精品丝袜一区| 成人综合在线观看| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 午夜精品免费在线| 欧美视频三区在线播放| 亚洲愉拍自拍另类高清精品| 色综合视频在线观看| 玉米视频成人免费看| 欧美中文字幕亚洲一区二区va在线| 亚洲欧洲日产国码二区| kk眼镜猥琐国模调教系列一区二区 | 欧美sm极限捆绑bd| 精品一区二区三区在线视频| 欧美精品一区二区三区蜜臀| 国产一区二区三区电影在线观看| 久久欧美一区二区| 成人黄动漫网站免费app| 亚洲视频在线一区二区| 欧美午夜电影一区| 久久精品99国产精品日本| 欧美va天堂va视频va在线| 国产大陆a不卡| 亚洲色大成网站www久久九九| 欧美性做爰猛烈叫床潮| 日本不卡的三区四区五区| 欧美r级在线观看| 成人激情小说网站| 亚洲综合自拍偷拍| 日韩一区二区电影在线| 国产酒店精品激情| 中文字幕精品一区| 欧美色图在线观看| 久草这里只有精品视频| 日本一区二区三区国色天香| 91视频观看免费| 婷婷国产在线综合| 国产视频一区二区三区在线观看 | 日韩欧美成人一区二区| 国产精品一线二线三线| 亚洲欧美国产三级| 91精品婷婷国产综合久久竹菊| 国产一区在线视频| 亚洲人吸女人奶水| 欧美本精品男人aⅴ天堂| 972aa.com艺术欧美| 蜜臀久久久久久久| 中文字幕一区二区三区蜜月| 欧美日韩黄色影视| 国产精品一级片| 亚洲综合无码一区二区| 2021国产精品久久精品| 91国内精品野花午夜精品| 精品一区在线看| 一区二区三区毛片| 日韩精品在线网站| 色综合久久天天| 国产一区二区三区蝌蚪| 亚洲一区二区三区爽爽爽爽爽 | www久久精品| 欧美探花视频资源| 国产成人av电影在线| 亚洲高清不卡在线| 中国色在线观看另类| 欧美一区二区在线看| 一本色道综合亚洲| 国产精品一区二区在线播放| 日韩黄色在线观看| 亚洲精品国产视频| 国产精品久久免费看| 欧美不卡一区二区三区四区| 欧美性生活久久|