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

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

?? ch1_1view.cpp

?? 采用新的算法快速打開一個BMP格式的圖片
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();
	
}

void CCh1_1View::OnGeomRota() 
{
	// 圖像旋轉

	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR lpDIB;
	
	// 鎖定DIB
	lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());
	
	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的旋轉,其它的可以類推)
	if (::DIBNumColors(lpDIB) != 256)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的旋轉!", "系統提示" , MB_ICONINFORMATION | MB_OK);

		// 解除鎖定
		::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
		
		// 返回
		return;
	}
	
	// 縮放比率
	int iRotateAngle;
	
	// 創建對話框
	CDlgGeoRota dlgPara;
	
	// 初始化變量值
	dlgPara.m_iRotateAngle = 90;
	
	// 顯示對話框,提示用戶設定旋轉角度
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶設定的平移量
	iRotateAngle = dlgPara.m_iRotateAngle;
	
	// 刪除對話框
	delete dlgPara;	
	
	
	// 創建新DIB
	HDIB hNewDIB = NULL;
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用RotateDIB()函數旋轉DIB
	hNewDIB = (HDIB) RotateDIB(lpDIB, iRotateAngle);
	
	// 判斷旋轉是否成功
	if (hNewDIB != NULL)
	{
		
		// 替換DIB,同時釋放舊DIB對象
		pDoc->ReplaceHDIB(hNewDIB);

		// 更新DIB大小和調色板
		pDoc->InitDIBData();
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);
		
		// 重新設置滾動視圖大小
		SetScrollSizes(MM_TEXT, pDoc->GetDocSize());
		
		// 更新視圖
		pDoc->UpdateAllViews(NULL);
	}
	else
	{
		// 提示用戶
		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);
	}
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();
}

//////////////////////////////////////////////////////////////////////////////////////
//  圖像增強
//
void CCh1_1View::OnEnhaSmooth() 
{
	// 圖像平滑
	
	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR	lpDIB;
	
	// 指向DIB象素指針
	LPSTR   lpDIBBits;
	
	// 模板高度
	int		iTempH;
	
	// 模板寬度
	int		iTempW;
	
	// 模板系數
	FLOAT	fTempC;
	
	// 模板中心元素X坐標
	int		iTempMX;
	
	// 模板中心元素Y坐標
	int		iTempMY;
	
	// 模板元素數組
	FLOAT	aValue[25];
	
	// 鎖定DIB
	lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());

	// 找到DIB圖像象素起始位置
	lpDIBBits = ::FindDIBBits(lpDIB);
	
	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的平滑,其它的可以類推)
	if (::DIBNumColors(lpDIB) != 256)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的平滑!", "系統提示" , 
			MB_ICONINFORMATION | MB_OK);
		
		// 解除鎖定
		::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
		
		// 返回
		return;
	}
	
	// 創建對話框
	CDlgSmooth dlgPara;
	
	// 給模板數組賦初值(為平均模板)*/
	/*
	aValue[0] = 1.0;
	aValue[1] = 1.0;
	aValue[2] = 1.0;
	aValue[3] = 0.0;
	aValue[4] = 0.0;
	aValue[5] = 1.0;
	aValue[6] = 1.0;
	aValue[7] = 1.0;
	aValue[8] = 0.0;
	aValue[9] = 0.0;
	aValue[10] = 1.0;
	aValue[11] = 1.0;
	aValue[12] = 1.0;
	aValue[13] = 0.0;
	aValue[14] = 0.0;
	aValue[15] = 0.0;
	aValue[16] = 0.0;
	aValue[17] = 0.0;
	aValue[18] = 0.0;
	aValue[19] = 0.0;
	aValue[20] = 0.0;
	aValue[21] = 0.0;
	aValue[22] = 0.0;
	aValue[23] = 0.0;
	aValue[24] = 0.0;
	
	// 初始化對話框變量值
	dlgPara.m_intType = 0;
	dlgPara.m_iTempH  = 3;
	dlgPara.m_iTempW  = 3;
	dlgPara.m_iTempMX = 1;
	dlgPara.m_iTempMY = 1;
	dlgPara.m_fTempC  = (FLOAT) (1.0 / 9.0);
	dlgPara.m_fpArray = aValue;
	
	// 顯示對話框,提示用戶設定平移量
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶設定的平移量
	iTempH  = dlgPara.m_iTempH;
	iTempW  = dlgPara.m_iTempW;
	iTempMX = dlgPara.m_iTempMX;
	iTempMY = dlgPara.m_iTempMY;
	fTempC  = dlgPara.m_fTempC;
	
	// 刪除對話框
	delete dlgPara;	
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用Template()函數平滑DIB
	if (::Template(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), 
		  iTempH, iTempW, iTempMX, iTempMY, aValue, fTempC))
	{
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);

		// 更新視圖
		pDoc->UpdateAllViews(NULL);
	}
	else
	{
		// 提示用戶
		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);
	}
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();
	
}

void CCh1_1View::OnENHAMidianF() 
{
	// 中值濾波
	
	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR	lpDIB;
	
	// 指向DIB象素指針
	LPSTR   lpDIBBits;
	
	// 濾波器的高度
	int iFilterH;
	
	// 濾波器的寬度
	int iFilterW;
	
	// 中心元素的X坐標
	int iFilterMX;
	
	// 中心元素的Y坐標
	int iFilterMY;
	
	// 鎖定DIB
	lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());

	// 找到DIB圖像象素起始位置
	lpDIBBits = ::FindDIBBits(lpDIB);
	
	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的中值濾波,其它的可以類推)
	if (::DIBNumColors(lpDIB) != 256)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的中值濾波!", "系統提示" ,
			MB_ICONINFORMATION | MB_OK);
		
		// 解除鎖定
		::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
		
		// 返回
		return;
	}
	
	// 創建對話框
	CDlgMidFilter dlgPara;
	
	// 初始化變量值
	dlgPara.m_iFilterType = 0;
	dlgPara.m_iFilterH = 3;
	dlgPara.m_iFilterW = 1;
	dlgPara.m_iFilterMX = 0;
	dlgPara.m_iFilterMY = 1;
	
	// 顯示對話框,提示用戶設定平移量
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶的設定
	iFilterH = dlgPara.m_iFilterH;
	iFilterW = dlgPara.m_iFilterW;
	iFilterMX = dlgPara.m_iFilterMX;
	iFilterMY = dlgPara.m_iFilterMY;
	
	// 刪除對話框
	delete dlgPara;	
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用MedianFilter()函數中值濾波
	if (::MedianFilter(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), 
		  iFilterH, iFilterW, iFilterMX, iFilterMY))
	{
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);

		// 更新視圖
		pDoc->UpdateAllViews(NULL);
	}
	else
	{
		// 提示用戶
		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);
	}
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();
	
}

void CCh1_1View::OnEnhaGradsharp() 
{
	// 梯度銳化
	
	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR lpDIB;
	
	// 指向DIB象素指針
	LPSTR    lpDIBBits;
	
	// 鎖定DIB
	lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());

	// 找到DIB圖像象素起始位置
	lpDIBBits = ::FindDIBBits(lpDIB);	
	
	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的梯度銳化,其它的可以類推)
	if (::DIBNumColors(lpDIB) != 256)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的梯度銳化!", "系統提示" , 
			MB_ICONINFORMATION | MB_OK);
		
		// 解除鎖定
		::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
		
		// 返回
		return;
	}
	
	// 閾值
	BYTE	bThre;
	
	// 創建對話框
	CDlgSharpThre dlgPara;
	
	// 初始化變量值
	dlgPara.m_bThre = 10;
	
	// 提示用戶輸入閾值
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶的設定
	bThre = dlgPara.m_bThre;
	
	// 刪除對話框
	delete dlgPara;	
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用GradSharp()函數進行梯度板銳化
	if (::GradSharp(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), bThre))
	{
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);

		// 更新視圖
		pDoc->UpdateAllViews(NULL);
	}
	else
	{
		// 提示用戶
		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);
	}
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();
	
}

void CCh1_1View::OnEnhaSharp() 
{
	// 圖像銳化
	
	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR lpDIB;
	
	// 指向DIB象素指針
	LPSTR    lpDIBBits;
	
	// 模板高度
	int		iTempH;
	
	// 模板寬度
	int		iTempW;
	
	// 模板系數
	FLOAT	fTempC;
	
	// 模板中心元素X坐標
	int		iTempMX;
	
	// 模板中心元素Y坐標
	int		iTempMY;
	
	// 模板元素數組
	FLOAT	aValue[9];
	
	// 鎖定DIB
	lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());

	// 找到DIB圖像象素起始位置
	lpDIBBits = ::FindDIBBits(lpDIB);	
	
	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的銳化,其它的可以類推)
	if (::DIBNumColors(lpDIB) != 256)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的銳化!", "系統提示" , 
			MB_ICONINFORMATION | MB_OK);
		
		// 解除鎖定
		::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
		
		// 返回
		return;
	}
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 設置拉普拉斯模板參數
	iTempW = 3;
	iTempH = 3;
	fTempC = 1.0;
	iTempMX = 1;
	iTempMY = 1;
	aValue[0] = -1.0;
	aValue[1] = -1.0;
	aValue[2] = -1.0;
	aValue[3] = -1.0;
	aValue[4] =  9.0;
	aValue[5] = -1.0;
	aValue[6] = -1.0;
	aValue[7] = -1.0;
	aValue[8] = -1.0;
	
	// 調用Template()函數用拉普拉斯模板銳化DIB
	if (::Template(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), 
		  iTempH, iTempW, iTempMX, iTempMY, aValue, fTempC))
	{
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);

		// 更新視圖
		pDoc->UpdateAllViews(NULL);
	}
	else
	{
		// 提示用戶
		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);
	}
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();
}

void CCh1_1View::OnEnhaColor() 
{
	// 偽彩色編碼
	
	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 保存用戶選擇的偽彩色編碼表索引
	int		nColor;
	
	// 指向DIB的指針
	LPSTR	lpDIB;
	
	// 鎖定DIB
	lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());
	
	// 判斷是否是8-bpp位圖(只處理256色位圖的偽彩色變換,其它的可以類推)
	if (::DIBNumColors(lpDIB) != 256)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的偽彩色變換!", "系統提示" , 
			MB_ICONINFORMATION | MB_OK);
		
		// 解除鎖定
		::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
		
		// 返回
		return;
	}
	
	// 參數對話框
	CDlgColor dlgPara;
	
	// 初始化變量值
	if (pDoc->m_nColorIndex >= 0)
	{
		// 初始選中當前的偽彩色
		dlgPara.m_nColor = pDoc->m_nColorIndex;
	}
	else
	{
		// 初始選中灰度偽彩色編碼表
		dlgPara.m_nColor = 0;
	}
	
	// 指向名稱數組的指針
	dlgPara.m_lpColorName = (LPSTR) ColorScaleName;
	
	// 偽彩色編碼數目
	dlgPara.m_nColorCount = COLOR_SCALE_COUNT;
	
	// 名稱字符串長度
	dlgPara.m_nNameLen = sizeof(ColorScaleName) / COLOR_SCALE_COUNT;
	
	// 顯示對話框,提示用戶設定平移量
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶的設定
	nColor = dlgPara.m_nColor;
	
	// 刪除對話框
	delete dlgPara;	
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 判斷偽彩色編碼是否改動
	if (pDoc->m_nColorIndex != nColor)
	{
		// 調用ReplaceColorPal()函數變換調色板
		::ReplaceColorPal(lpDIB, (BYTE*) ColorsTable[nColor]);
		
		// 替換當前文檔調色板
		pDoc->GetDocPalette()->SetPaletteEntries(0, 256, (LPPALETTEENTRY) ColorsTable[nColor]);
		
		// 更新類成員變量
		pDoc->m_nColorIndex = nColor;
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);
		
		// 實現新的調色板
		OnDoRealize((WPARAM)m_hWnd,0);
		
		// 更新視圖
		pDoc->UpdateAllViews(NULL);
	}
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频免费在线| 亚洲日本韩国一区| 久久se这里有精品| 国产精品毛片无遮挡高清| 成人性生交大合| 综合色中文字幕| 欧美精品免费视频| 久久精品二区亚洲w码| 国产视频一区二区在线| 国产精品进线69影院| 日本乱码高清不卡字幕| 亚洲精品免费电影| 亚洲一区在线电影| 日韩一区国产二区欧美三区| 日本视频免费一区| 中文字幕二三区不卡| 日韩一级片在线播放| 9l国产精品久久久久麻豆| 欧美96一区二区免费视频| 国产拍揄自揄精品视频麻豆| 亚洲欧美综合另类在线卡通| 欧美精品粉嫩高潮一区二区| 不卡的av在线| 国产乱码精品一区二区三区忘忧草| 成人免费视频app| 久久se精品一区精品二区| 亚洲成av人在线观看| 国产精品免费久久| 久久影音资源网| 日韩一区二区在线免费观看| 欧美日韩亚洲综合一区| 成人理论电影网| 久久久亚洲综合| 91老司机福利 在线| 成人av集中营| 韩国精品在线观看| 久久精品国产秦先生| 久久国产欧美日韩精品| 一区二区三区精品在线| 亚洲精品伦理在线| 性欧美疯狂xxxxbbbb| 亚洲亚洲人成综合网络| 日韩精品一二区| 精品免费视频一区二区| 欧美电视剧免费观看| 欧美一级午夜免费电影| 久久久久久久久久久黄色| 国产精品久久久久久户外露出 | 色综合天天天天做夜夜夜夜做| 国产v综合v亚洲欧| 欧美性大战久久久久久久蜜臀 | 精品少妇一区二区三区日产乱码| 欧美日韩在线播放三区| 精品视频全国免费看| 欧美日韩在线不卡| 久久午夜电影网| 亚洲制服丝袜av| 国产91色综合久久免费分享| 色欧美88888久久久久久影院| 欧美一卡二卡在线观看| 精品久久久久久久久久久久久久久久久| 2023国产一二三区日本精品2022| 国产无一区二区| 亚洲人成影院在线观看| 男女男精品视频| 欧美日本高清视频在线观看| 欧美丰满少妇xxxxx高潮对白 | 色婷婷综合久色| 国产精品久久久久久久岛一牛影视| 亚洲高清在线视频| www.综合网.com| 久久精品一区二区三区av| 日本不卡视频一二三区| 91麻豆国产香蕉久久精品| 日韩一区二区在线看片| 青青草97国产精品免费观看无弹窗版| 国产麻豆欧美日韩一区| 欧美男女性生活在线直播观看| 国产精品初高中害羞小美女文| 国产不卡在线一区| 欧美激情一区在线观看| 香蕉久久一区二区不卡无毒影院| 国产不卡视频在线播放| 精品盗摄一区二区三区| 免费看日韩精品| 国产精品理伦片| 欧美怡红院视频| 久草热8精品视频在线观看| 欧美大尺度电影在线| 久久se精品一区二区| 国产精品国产三级国产专播品爱网 | 中文字幕国产一区| 欧美亚洲国产bt| 韩国成人福利片在线播放| 18成人在线观看| 久久一区二区三区四区| 欧美三级电影网站| 精品久久久久香蕉网| 国产精品国产三级国产aⅴ原创| 欧美精品丝袜中出| 国产日韩欧美精品综合| 亚洲欧美日韩一区| 日韩欧美视频一区| 欧美日韩精品二区第二页| www.av亚洲| 成人综合婷婷国产精品久久| 国产一区二区三区综合| 三级一区在线视频先锋 | 欧美精品乱码久久久久久| 91精品国产免费久久综合| 欧美日韩不卡一区| 欧美精品久久天天躁| 欧美一区二区三区四区高清| 欧美成人精品二区三区99精品| 制服丝袜中文字幕亚洲| 久久人人超碰精品| 久久亚洲精品小早川怜子| 国产亚洲制服色| 亚洲欧美日韩国产手机在线| 亚洲精品成人天堂一二三| 亚洲国产精品天堂| 麻豆成人综合网| 91在线观看美女| 精品成a人在线观看| 日韩一区欧美小说| 奇米亚洲午夜久久精品| 日韩激情av在线| 337p亚洲精品色噜噜狠狠| 日本一区二区不卡视频| 国产剧情一区二区| 欧美精品一区二区三区蜜桃视频| 丝袜亚洲另类欧美综合| 99久久综合国产精品| 久久人人爽人人爽| 国产一区二三区| 久久久久国产精品厨房| 日韩激情在线观看| 欧美亚洲国产bt| 亚洲欧美日韩国产一区二区三区 | 一区免费观看视频| 国v精品久久久网| 欧美激情一区二区三区全黄| 久久狠狠亚洲综合| 欧美区在线观看| 亚洲国产精品自拍| 在线精品视频免费观看| 亚洲三级久久久| 7777精品伊人久久久大香线蕉完整版 | 日韩成人免费在线| 色婷婷av一区二区三区软件| 一区二区三区毛片| 欧美系列在线观看| 亚洲一二三四区不卡| 91福利精品第一导航| 男女激情视频一区| 久久久久久99久久久精品网站| 久久精品久久久精品美女| 777亚洲妇女| 一本大道久久a久久综合婷婷| 亚洲va欧美va人人爽| 中文字幕免费观看一区| 欧美一区二区三级| 91在线视频免费91| 国产激情91久久精品导航| 久久久精品国产免大香伊| 久久 天天综合| 亚洲乱码国产乱码精品精98午夜 | 亚洲免费观看高清在线观看| 91丝袜国产在线播放| 亚洲一区av在线| 欧美大片在线观看一区二区| 成人精品免费视频| 日本大胆欧美人术艺术动态| 久久久噜噜噜久噜久久综合| 色噜噜狠狠成人网p站| 亚洲自拍欧美精品| 精品日韩在线观看| 成人丝袜视频网| 午夜免费久久看| 欧美国产一区在线| 日韩欧美一区二区视频| 91国内精品野花午夜精品| 国产一本一道久久香蕉| 日韩福利电影在线| 亚洲永久免费av| 亚洲欧洲成人av每日更新| 日韩欧美的一区二区| 色丁香久综合在线久综合在线观看| 激情五月婷婷综合| 免费观看91视频大全| 婷婷亚洲久悠悠色悠在线播放| 中文字幕在线一区免费| 欧美激情一二三区| 中文字幕一区二区在线观看| 国产亚洲欧美在线| 欧美xxxxx牲另类人与| 久久久噜噜噜久久人人看| 欧美午夜电影在线播放| 欧美三区免费完整视频在线观看| 色婷婷综合中文久久一本|