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

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

?? dynsplitview2.cpp

?? 圖像處理算法相關VC程序 VC++圖像處理程序設計配套光盤
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// DynSplitView2.cpp : implementation file
//

#include "stdafx.h"
#include "DSplit.h"
#include "DynSplitView2.h"
#include "DlgZhiFangTu.h"
#include "DlgChuangkoubianhuan.h" 
#include "DlgZhexianbianhuan.h" 
#include "DlgGuDingFaZhi.h"
#include "DialogShuangYu.h" 
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDynSplitView2

IMPLEMENT_DYNCREATE(CDynSplitView2, CView)

CDynSplitView2::CDynSplitView2()
{
	state2=0;
}


/*初始化圖像數據*/
void CDynSplitView2::clearmem()
{
	CDSplitDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	pDoc ->statedoc=0;
    state2=1;
	CDibNew1=&pDoc->CDibNew;
    CDib1=&pDoc->CDib;
    long int  size=CDib1->GetHeight()*CDib1->GetWidth();
    memcpy(CDibNew1->m_pData,CDib1->m_pData,size);
}

CPalette * CDynSplitView2::CreateBitmapPalette(HuiDuBianHuanDib * pBitmap)
{
	struct
	{
		WORD Version;
		WORD NumberOfEntries;
		PALETTEENTRY aEntries[256];
	} palette = { 0x300, 256 };
	
	LPRGBQUAD pRGBTable = pBitmap->GetRGB();
	UINT numberOfColors = pBitmap->GetNumberOfColors();
	
	for(UINT x=0; x<numberOfColors; ++x)
	{
		palette.aEntries[x].peRed =
			pRGBTable[x].rgbRed;
		palette.aEntries[x].peGreen =
			pRGBTable[x].rgbGreen;
		palette.aEntries[x].peBlue =
			pRGBTable[x].rgbBlue;
		palette.aEntries[x].peFlags = 0;
	}
	
	hPalette.CreatePalette((LPLOGPALETTE)&palette);
	
	return &hPalette;
}

CDynSplitView2::~CDynSplitView2()
{
}
CDSplitDoc* CDynSplitView2::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDSplitDoc)));
	return (CDSplitDoc*)m_pDocument;
}


BEGIN_MESSAGE_MAP(CDynSplitView2, CView)
	//{{AFX_MSG_MAP(CDynSplitView2)
	ON_WM_ERASEBKGND()
	ON_COMMAND(ID_FILESAVE, OnFilesave)
	ON_COMMAND(ID_Zhifangtutongji, OnZhifangtutongji)
	ON_COMMAND(ID_FanSeBianHuan, OnFanSeBianHuan)
	ON_COMMAND(ID_Chuangkoubianhuan, OnChuangkoubianhuan)
	ON_COMMAND(ID_ZheXianBianHuan, OnZheXianBianHuan)
	ON_COMMAND(ID_Fenbujunhenghua, OnFenbujunhenghua)
	ON_COMMAND(ID_Pipeibianhuan, OnPipeibianhuan)
	ON_COMMAND(ID_Yuantuzhifangtu, OnYuantuzhifangtu)
	ON_COMMAND(ID_Shuipingtouying, OnShuipingtouying)
	ON_COMMAND(ID_Chuizhitouying, OnChuizhitouying)
	ON_COMMAND(ID_Fei0, OnFei0)
	ON_COMMAND(ID_GUDING, OnGuding)
	ON_COMMAND(ID_ShuanGuDingFa, OnShuanGuDingFa)
	ON_COMMAND(ID_RedZhiFangtu, OnRedZhiFangtu)
	ON_COMMAND(ID_BlueZhiFangtu, OnBlueZhiFangtu)
	ON_COMMAND(ID_GreenZhifangtu, OnGreenZhifangtu)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDynSplitView2 drawing

void CDynSplitView2::OnDraw(CDC* pDC)
{	
	CDSplitDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if(!pDoc ->statedoc&&state2==1)
	{
        BYTE* pBitmapData = CDibNew1->GetData();
        LPBITMAPINFO pBitmapInfo = CDibNew1->GetInfo();
		int m_scale=1;
        int bitmapHeight = CDibNew1->GetHeight();
        int bitmapWidth = CDibNew1->GetWidth();
		int scaledWidth = (int)(bitmapWidth * m_scale);
		int scaledHeight = (int)(bitmapHeight * m_scale);
		if (CDibNew1->GetRGB()) // Has a color table
		{
			CPalette * hPalette=CreateBitmapPalette(CDibNew1);
            CPalette * hOldPalette =
                pDC->SelectPalette(hPalette, true);
            pDC->RealizePalette();
			::StretchDIBits(pDC->GetSafeHdc(),0, 0, bitmapWidth, bitmapHeight,
				0, 0, bitmapWidth, bitmapHeight,
				pBitmapData, pBitmapInfo,
				DIB_RGB_COLORS, SRCCOPY);
            pDC->SelectPalette(hOldPalette, true);
            ::DeleteObject(hPalette);
		}
		else
		{
			StretchDIBits(pDC->GetSafeHdc(),
                0, 0, scaledWidth, scaledHeight,
                0, 0, bitmapWidth, bitmapHeight,
				pBitmapData, pBitmapInfo,
				DIB_RGB_COLORS, SRCCOPY);
		}
	}
}


/////////////////////////////////////////////////////////////////////////////
// CDynSplitView2 diagnostics

#ifdef _DEBUG
void CDynSplitView2::AssertValid() const
{
	CView::AssertValid();
}

void CDynSplitView2::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CDynSplitView2 message handlers

BOOL CDynSplitView2::OnEraseBkgnd(CDC* pDC) 
{
	CRect rect;
	GetClientRect(&rect);
	pDC->FillSolidRect(&rect,::GetSysColor(COLOR_WINDOW));
	return TRUE;
}

void CDynSplitView2::OnFilesave() 
{
	CFileDialog dlg(FALSE,_T("BMP"),_T("*.BMP"),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T("位圖文件(*.BMP)|*.BMP|"));	
    if(IDOK==dlg.DoModal())
	CString  filename;
    filename.Format ("%s",dlg.GetPathName() );    
    CDibNew1->SaveFile(filename);
	state2=1;
	Invalidate();
}

//處理后直方圖顯示
void CDynSplitView2::OnZhifangtutongji() 
{
	int i;
	// 各顏色分量的灰度分布密度
    float midu[256];
	
	// 計算灰度分布密度
	CDSplitDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	pDoc ->statedoc=0;
    state2=1;
	
	CDibNew1->ZhiFangTu(midu);             //調用灰度統計處理函數
	
	// 創建對話框
	CDlgZhiFangTu*  dlg;	 
    dlg=new CDlgZhiFangTu(this);
    dlg->Create(IDD_DLG_zhifangtufenbu);
	// 傳遞灰度分布密度數據給面板類
	for (i = 0; i <256; i++)
		dlg->m_fIntensity[i] = midu[i];
	
	// 顯示處理后的直方圖
	dlg->ShowWindow(SW_RESTORE);
}

//反色變換消息映射
void CDynSplitView2::OnFanSeBianHuan() 
{
    clearmem();
	int i;
	state3=0;
	
	// 計算灰度分布密度
	CDibNew1->ZhiFangTu(midu2);									//調用灰度統計處理函數
	
	// 創建對話框
	CDlgZhiFangTu*  dlg2; 
    dlg2=new CDlgZhiFangTu(this);
    dlg2->Create(IDD_DLG_zhifangtufenbu);
	
	// 傳遞灰度分布密度數據給面板類
	for (i = 0; i <256; i++)
		dlg2->m_fIntensity[i] = midu2[i];
	if(CDibNew1->m_pBitmapInfoHeader->biBitCount<9)		//灰度圖像
	{
		clearmem();
		CDibNew1->FanSeBianHuan();								//調用反色變換處理函數
		Invalidate();											//調用刷新函數
	}
	else		//24位彩色
	{
		clearmem2();
		CDibNew1->FanSeBianHuan();								//調用反色變換處理函數
		Invalidate();											//調用刷新函數
	}
}

//灰度窗口變換消息映射
void CDynSplitView2::OnChuangkoubianhuan() 
{
	clearmem();
	int i;
	state3=0;
	// 計算灰度分布密度
	CDibNew1->ZhiFangTu(midu2);									//調用灰度統計處理函數
	
	// 創建對話框
	CDlgZhiFangTu*  dlg2;	 
	dlg2=new CDlgZhiFangTu(this);
	dlg2->Create(IDD_DLG_zhifangtufenbu);
	
	// 傳遞灰度分布密度數據給面板類
	for (i = 0; i <256; i++)
		dlg2->m_fIntensity[i] = midu2[i];
	// 創建對話框
	CDlgChuangkoubianhuan  dlg;
	
	// 窗口下限
	BYTE	bLow;	
	// 窗口上限
	BYTE	bUp;
	
	// 初始化變量值
	dlg.m_bLow = 50;
	dlg.m_bUp = 200;
	
	// 顯示對話框,提示用戶設定窗口上下限
	if (dlg.DoModal() != IDOK)
	{
		// 返回
		return;
	}	
	// 獲取用戶設定的窗口上下限
	bLow = dlg.m_bLow;
	bUp = dlg.m_bUp;
	
	// 刪除對話框
	delete dlg;			
	// 調用WindowTrans()函數進行窗口變換
	if(CDibNew1->m_pBitmapInfoHeader->biBitCount<9)		//灰度圖像
	{
		clearmem();
		CDibNew1->Chuangkoubianhuan(  bLow,   bUp);             //調用窗口變換處理函數
		Invalidate();											//調用刷新函數 
	}
	else		//24位彩色
	{
		clearmem2();
		CDibNew1->Chuangkoubianhuan(  bLow,   bUp);             //調用窗口變換處理函數
		Invalidate();											//調用刷新函數 
	}
	
}


//折線變換消息映射
void CDynSplitView2::OnZheXianBianHuan() 
{
	clearmem();
	int i;
	state3=0;
	
	// 計算灰度分布密度
	CDibNew1->ZhiFangTu(midu2);             //調用灰度統計處理函數
	
	// 創建對話框
	CDlgZhiFangTu*  dlg2;
    dlg2=new CDlgZhiFangTu(this);
    dlg2->Create(IDD_DLG_zhifangtufenbu);
	
	// 傳遞灰度分布密度數據給面板類
	for (i = 0; i <256; i++)
		dlg2->m_fIntensity[i] = midu2[i];
	
	// 創建對話框
	CDlgZhexianbianhuan dlgPara;
	
	// 點1坐標
	BYTE	bX1;
	BYTE	bY1;	
	// 點2坐標
	BYTE	bX2;
	BYTE	bY2;
	
	// 初始化變量值
	dlgPara.m_bX1 = 50;
	dlgPara.m_bY1 = 30;
	dlgPara.m_bX2 = 200;
	dlgPara.m_bY2 = 220;
	
	// 顯示對話框,提示用戶設定拉伸位置
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶的設定
	bX1 = dlgPara.m_bX1;
	bY1 = dlgPara.m_bY1;
	bX2 = dlgPara.m_bX2;
	bY2 = dlgPara.m_bY2;
	
	// 刪除對話框
	delete dlgPara;	
	if  (CDibNew1->m_pBitmapInfoHeader->biBitCount<9)		//灰度圖像
	{
		// 調用Zhexianbianhuan()函數進行灰度拉伸	 
		clearmem();
		CDibNew1->Zhexianbianhuan( bX1,bY1,bX2,bY2);             //調用折線變換處理函數
		Invalidate();           //調用刷新函數
	}
	else		//24位彩色
	{
		// 調用Zhexianbianhuan()函數進行灰度拉伸	 
		clearmem2();
		CDibNew1->Zhexianbianhuan( bX1,bY1,bX2,bY2);             //調用折線變換處理函數
		Invalidate();           //調用刷新函數

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美高清一级片在线观看| 欧美日韩视频不卡| 精品一区二区综合| 蜜臀久久99精品久久久画质超高清| 亚洲欧美另类在线| 亚洲综合色噜噜狠狠| 亚洲一区在线播放| 美日韩黄色大片| 精品在线视频一区| 成人午夜短视频| 91黄色免费观看| 日韩欧美久久一区| 亚洲国产精品精华液ab| 亚洲在线视频网站| 久久99国产精品成人| 91麻豆国产福利在线观看| 欧美日产国产精品| 国产拍揄自揄精品视频麻豆 | 国产精品私人自拍| 亚洲一区二区三区精品在线| 毛片av中文字幕一区二区| 成人少妇影院yyyy| 日韩一区国产二区欧美三区| 国产无一区二区| 日韩 欧美一区二区三区| av中文字幕一区| 日韩一区二区三区免费看 | 欧美精品tushy高清| 在线不卡一区二区| 一区在线观看免费| 国内精品免费在线观看| 欧美日韩久久一区| 中文字幕在线观看不卡视频| 国产九色精品成人porny| 欧美精品乱码久久久久久按摩 | 日本不卡一区二区三区 | 久久色成人在线| 婷婷夜色潮精品综合在线| 国产不卡视频在线观看| 欧美tickling网站挠脚心| 亚洲午夜影视影院在线观看| 91传媒视频在线播放| 1000精品久久久久久久久| 国产盗摄视频一区二区三区| 精品日韩成人av| 久久国产精品第一页| 精品免费视频.| 国产一区91精品张津瑜| 欧美—级在线免费片| 99精品欧美一区二区蜜桃免费| 中文字幕免费一区| 色天天综合色天天久久| 亚洲女同女同女同女同女同69| 色狠狠色噜噜噜综合网| 亚洲一区二区三区自拍| 日韩一区二区免费电影| 激情五月播播久久久精品| 久久久亚洲午夜电影| av在线不卡观看免费观看| 亚洲成人av一区| 欧美精品一区二区三区在线播放| 国产精品一二二区| 亚洲午夜成aⅴ人片| 国产亚洲一区二区在线观看| 99久久精品免费| 裸体健美xxxx欧美裸体表演| 久久麻豆一区二区| 欧美日韩一区 二区 三区 久久精品| 亚洲国产精品麻豆| 亚洲一区在线看| 精品视频全国免费看| 麻豆精品久久精品色综合| 国产精品久久久久久一区二区三区| 欧美三级三级三级爽爽爽| 国产成人8x视频一区二区| 亚洲成人高清在线| 亚洲永久免费av| 综合久久一区二区三区| 久久久久久一级片| 欧美一区二区三区四区视频| 欧美亚洲综合网| 色悠悠亚洲一区二区| 岛国av在线一区| 国产精一品亚洲二区在线视频| 久久精品国产亚洲5555| 天天av天天翘天天综合网色鬼国产| 亚洲三级视频在线观看| 中文字幕精品三区| 成人欧美一区二区三区| 中文字幕在线一区免费| 国产精品久久久久三级| 一区在线观看视频| 一区二区三区日韩欧美| 亚洲在线免费播放| 日韩精品五月天| 黄色精品一二区| 99久久精品国产导航| 972aa.com艺术欧美| 欧美性生活影院| 91精品国产色综合久久不卡蜜臀| 日韩一区二区三区视频在线| 在线播放欧美女士性生活| 欧美日韩国产成人在线91| 精品日韩在线观看| 国产精品美女久久久久久| 夜夜操天天操亚洲| 麻豆精品一二三| 91麻豆免费看| 久久久天堂av| 亚洲成av人片一区二区三区| 国产麻豆精品一区二区| 欧美最猛黑人xxxxx猛交| 26uuu国产日韩综合| 亚洲精品国产第一综合99久久| 九九在线精品视频| 欧洲在线/亚洲| 国产精品美女久久久久久久| 免费日韩伦理电影| 色欧美片视频在线观看| 欧美性猛片xxxx免费看久爱| 色悠悠久久综合| 欧美韩日一区二区三区四区| 日韩精品电影一区亚洲| 波多野结衣亚洲一区| 久久久精品tv| 久久成人免费电影| 337p亚洲精品色噜噜狠狠| 亚洲午夜久久久久久久久电影网 | 91精品国产综合久久精品图片| 一区在线观看视频| 97久久超碰国产精品电影| 久久精品一区八戒影视| 国产精品香蕉一区二区三区| 日韩免费一区二区| 激情文学综合丁香| 日本一区二区在线不卡| 高清不卡在线观看av| 国产欧美视频在线观看| www.日韩av| 亚洲欧美国产高清| 精品1区2区3区| 久久超级碰视频| 久久亚洲精精品中文字幕早川悠里 | 欧美精品在线观看播放| 捆绑紧缚一区二区三区视频 | 国产一区在线精品| 中文字幕免费在线观看视频一区| 91女神在线视频| 日韩精品视频网| 国产精品久久久久一区二区三区 | 91一区二区三区在线观看| 日韩一区在线看| 欧美日韩三级一区| 蜜乳av一区二区| 国产调教视频一区| 91视频精品在这里| 爽爽淫人综合网网站| 精品日本一线二线三线不卡| 国产suv一区二区三区88区| 亚洲欧洲av另类| 风流少妇一区二区| 日韩欧美国产电影| 国内久久精品视频| 一区二区三区日本| 欧美日韩一级视频| 国产美女视频91| 夜夜嗨av一区二区三区网页 | 欧美人伦禁忌dvd放荡欲情| 久久机这里只有精品| 中文字幕一区在线| 在线不卡免费av| 在线观看成人免费视频| 成人小视频免费观看| 日韩精品一区第一页| 中文字幕日韩av资源站| 精品动漫一区二区三区在线观看 | 91麻豆精品国产自产在线观看一区 | 日韩一区在线免费观看| 国产精品私房写真福利视频| 欧美天天综合网| 丁香激情综合国产| 国产一区二区三区在线观看免费视频 | 视频一区视频二区在线观看| 中文字幕乱码亚洲精品一区| 国产蜜臀97一区二区三区 | 欧美精品一区男女天堂| 91碰在线视频| 成年人午夜久久久| 国产又黄又大久久| 国产精品18久久久久| 午夜视频一区二区三区| 日韩专区在线视频| 另类调教123区 | 国产一区二区三区av电影| 蜜臀av一级做a爰片久久| 美腿丝袜一区二区三区| 国产一区欧美日韩| 国内精品久久久久影院色| 国产原创一区二区三区| 国产成人精品影院|