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

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

?? edgecontourdoc.cpp

?? 經典編著《Visual C++數字圖像處理典型算法及實現》光盤源程序。
?? CPP
字號:
// EdgeContourDoc.cpp : implementation of the CEdgeContourDoc class
//

#include "stdafx.h"
#include "EdgeContour.h"

#include "EdgeContourDoc.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CEdgeContourDoc

IMPLEMENT_DYNCREATE(CEdgeContourDoc, CDocument)

BEGIN_MESSAGE_MAP(CEdgeContourDoc, CDocument)
	//{{AFX_MSG_MAP(CEdgeContourDoc)
	ON_COMMAND(ID_FILE_REOPEN, OnFileReopen)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEdgeContourDoc construction/destruction

CEdgeContourDoc::CEdgeContourDoc()
{
	// TODO: add one-time construction code here
	// 默認背景色,灰色
	m_refColorBKG = 0x00808080;	
	
	// 初始化變量
	m_pDibImage = NULL;
	m_hDIB = NULL;
	m_palDIB = NULL;
	m_sizeDoc = CSize(1,1);
}

CEdgeContourDoc::~CEdgeContourDoc()
{
	// 判斷DIB對象是否存在
	if (m_hDIB != NULL)
	{
		// 清除DIB對象
		::GlobalFree((HGLOBAL) m_hDIB);
	}
	
	// 判斷調色板是否存在
	if (m_palDIB != NULL)
	{
		// 清除調色板
		delete m_palDIB;
		m_palDIB = NULL;
	}

	// 判斷DibImage對象是否存在
	if (m_pDibImage != NULL)
	{
		// 清除DibImage對象
		delete m_pDibImage;
		m_pDibImage = NULL;
	}
}

BOOL CEdgeContourDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	// TODO: add reinitialization code here
	// (SDI documents will reuse this document)

	return TRUE;
}



/////////////////////////////////////////////////////////////////////////////
// CEdgeContourDoc serialization

void CEdgeContourDoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		// TODO: add storing code here
	}
	else
	{
		// TODO: add loading code here
	}
}

/////////////////////////////////////////////////////////////////////////////
// CEdgeContourDoc diagnostics

#ifdef _DEBUG
void CEdgeContourDoc::AssertValid() const
{
	CDocument::AssertValid();
}

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

/////////////////////////////////////////////////////////////////////////////
// CEdgeContourDoc commands

void CEdgeContourDoc::ReplaceHDIB(HDIB hDIB)
{
	// 替換DIB,在功能粘貼中用到該函數	
	if (m_hDIB != NULL)
	{
		::GlobalFree((HGLOBAL) m_hDIB);
	}
	m_hDIB = hDIB;		
}

void CEdgeContourDoc::InitDIBData()
{
	// 初始化DIB對象

	if (m_palDIB != NULL)
	{
		delete m_palDIB;
		m_palDIB = NULL;
	}	
	if (m_hDIB == NULL)
	{
		return;
	}
	
	LPSTR lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) m_hDIB);
	
	// 判斷圖像是否過大
	if (m_pDibImage->DIBWidth(lpDIB) > INT_MAX ||m_pDibImage->DIBHeight(lpDIB) 
		> INT_MAX)
	{
		::GlobalUnlock((HGLOBAL) m_hDIB);
		::GlobalFree((HGLOBAL) m_hDIB);

		m_hDIB = NULL;
		
		CString strMsg;
		strMsg = "BMP圖像太大!";
		MessageBox(NULL, strMsg, "系統提示", MB_ICONINFORMATION | MB_OK);

		return;
	}
	
	m_sizeDoc = CSize((int) m_pDibImage->DIBWidth(lpDIB), 
		(int) m_pDibImage->DIBHeight(lpDIB));
	
	::GlobalUnlock((HGLOBAL) m_hDIB);
	
	// 創建新調色板
	m_palDIB = new CPalette;
	if (m_palDIB == NULL)
	{
		::GlobalFree((HGLOBAL) m_hDIB);
		m_hDIB = NULL;

		return;
	}

	if (m_pDibImage->CreateDIBPalette(m_hDIB, m_palDIB) == NULL)
	{
		delete m_palDIB;
		m_palDIB = NULL;

		return;
	}
}

BOOL CEdgeContourDoc::OnOpenDocument(LPCTSTR lpszPathName) 
{
	CFile file;
	CFileException fe;

	if (!file.Open(lpszPathName, CFile::modeRead | CFile::shareDenyWrite, &fe))
	{
		ReportSaveLoadException(lpszPathName, &fe,FALSE, 
			AFX_IDP_FAILED_TO_OPEN_DOC);

		return FALSE;
	}
	
	DeleteContents();

	BeginWaitCursor();

	if(m_pDibImage != NULL)
	{
		delete m_pDibImage;
		m_pDibImage = NULL;
	}
	m_pDibImage = new CDibImage;

	TRY
	{
		m_hDIB = m_pDibImage->ReadDIBFile(file);
	}
	CATCH (CFileException, eLoad)
	{
		file.Abort();
		EndWaitCursor();

		ReportSaveLoadException(lpszPathName, eLoad,FALSE, 
			AFX_IDP_FAILED_TO_OPEN_DOC);
		
		m_hDIB = NULL;

		if(m_pDibImage != NULL)
		{
			delete m_pDibImage;
			m_pDibImage = NULL;
		}

		return FALSE;
	}
	END_CATCH

	InitDIBData();
	EndWaitCursor();
	
	// 判斷讀取文件是否成功
	if (m_hDIB == NULL)
	{
		CString strMsg;
		strMsg = "讀取圖像時出錯!可能是不支持該類型的圖像文件!";
		MessageBox(NULL, strMsg, "系統提示", MB_ICONINFORMATION | MB_OK);

		if(m_pDibImage != NULL)
		{
			delete m_pDibImage;
			m_pDibImage = NULL;
		}
		
		return FALSE;
	}
		
	SetPathName(lpszPathName);			// 設置文件名稱	
	SetModifiedFlag(FALSE);				// 初始化脹標記為FALSE

	return TRUE;
}

BOOL CEdgeContourDoc::OnSaveDocument(LPCTSTR lpszPathName) 
{
	CFile file;
	CFileException fe;

	if (!file.Open(lpszPathName, CFile::modeCreate |CFile::modeReadWrite 
		| CFile::shareExclusive, &fe))
	{
		ReportSaveLoadException(lpszPathName,&fe,TRUE,AFX_IDP_INVALID_FILENAME);
		return FALSE;
	}

	BOOL bSuccess = FALSE;
	TRY
	{
		BeginWaitCursor();
		bSuccess = m_pDibImage->SaveDIB(m_hDIB, file);
		file.Close();
	}
	CATCH (CException, eSave)
	{
		file.Abort();
		EndWaitCursor();
		ReportSaveLoadException(lpszPathName,eSave,TRUE,
			AFX_IDP_FAILED_TO_SAVE_DOC);

		return FALSE;
	}
	END_CATCH

	EndWaitCursor();
	SetModifiedFlag(FALSE);

	if (!bSuccess)
	{
		// 保存失敗,可能是其它格式的DIB,可以讀取但是不能保存
		// 或者是SaveDIB函數有誤
		CString strMsg;
		strMsg = "無法保存BMP圖像!";
		MessageBox(NULL, strMsg, "系統提示", MB_ICONINFORMATION | MB_OK);
	}
	
	return bSuccess;
}

void CEdgeContourDoc::OnFileReopen() 
{
	// 重新打開圖像,放棄所有修改
 
	// 判斷當前圖像是否已經被改動
	if (IsModified())
	{
		if (MessageBox(NULL, "重新打開圖像將丟失所有改動!是否繼續?", 
			"系統提示", MB_ICONQUESTION | MB_YESNO) == IDNO)
		{
			return;
		}
	}
	
	CFile file;
 	CFileException fe;
 	CString strPathName;
 	strPathName = GetPathName();

 	if (!file.Open(strPathName, CFile::modeRead | CFile::shareDenyWrite, &fe))
 	{
 		ReportSaveLoadException(strPathName,&fe,FALSE,AFX_IDP_FAILED_TO_OPEN_DOC);
 
 		return;
 	}
 	
 	BeginWaitCursor();
 	
	if(m_pDibImage != NULL)
	{
		delete m_pDibImage;
		m_pDibImage = NULL;
	}
	m_pDibImage = new CDibImage;

 	TRY
 	{
 		m_hDIB = m_pDibImage->ReadDIBFile(file);
 	}
 	CATCH (CFileException, eLoad)
 	{
 		file.Abort();
 		EndWaitCursor();
 		
 		ReportSaveLoadException(strPathName,eLoad,FALSE,AFX_IDP_FAILED_TO_OPEN_DOC);
 
 		m_hDIB = NULL;
		if(m_pDibImage != NULL)
		{
			delete m_pDibImage;
			m_pDibImage = NULL;
		}

 		return;
 	}
 	END_CATCH
 	
 	InitDIBData();
 	
 	if (m_hDIB == NULL)
 	{
 		CString strMsg;
 		strMsg = "讀取圖像時出錯!可能是不支持該類型的圖像文件!";
 		MessageBox(NULL, strMsg, "系統提示", MB_ICONINFORMATION | MB_OK);

 		EndWaitCursor();

		if(m_pDibImage != NULL)
		{
			delete m_pDibImage;
			m_pDibImage = NULL;
		}
 
 		return;
 	}
 	
 	SetModifiedFlag(FALSE);
 	UpdateAllViews(NULL);
 	EndWaitCursor();

 	return;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区视频在线| 国产精品免费视频观看| 日本高清成人免费播放| 成人中文字幕在线| www.亚洲色图| 91麻豆国产精品久久| 色综合色综合色综合| 91福利视频网站| 8x8x8国产精品| 久久亚区不卡日本| 国产欧美日产一区| 一区二区三区四区乱视频| 亚洲小说欧美激情另类| 日韩电影在线观看电影| 青青草97国产精品免费观看 | 日韩精品五月天| 日韩精品一二三区| 国产一区二区不卡在线 | 亚洲国产精品久久艾草纯爱| 亚洲成人av一区二区三区| 欧美bbbbb| 国产成人亚洲精品狼色在线| 99久久久国产精品| 欧美精品vⅰdeose4hd| 久久精品亚洲乱码伦伦中文 | 91精品国产综合久久精品性色| 欧美精品1区2区3区| 亚洲精品在线电影| 综合久久久久综合| 欧美aaaaa成人免费观看视频| 国产美女娇喘av呻吟久久| 99免费精品在线观看| 欧美一区二区网站| 国产精品福利一区| 免费观看日韩av| 99国产精品久久久久久久久久久| 欧美日韩中字一区| 国产精品亲子伦对白| 亚洲成av人片| 91美女精品福利| 久久这里只有精品首页| 亚洲一区二区三区四区在线观看 | 欧美日韩国产精选| 久久久久综合网| 日韩影院精彩在线| 在线免费观看成人短视频| 国产亚洲精品超碰| 强制捆绑调教一区二区| 欧美亚州韩日在线看免费版国语版| 日韩精品一区二区三区蜜臀| 亚洲精品视频在线看| 国产成人精品网址| 日韩久久精品一区| 日本成人中文字幕在线视频| 色综合天天综合狠狠| 日本一区二区久久| 国产成+人+日韩+欧美+亚洲| 日韩一二三区视频| 免费观看一级欧美片| 欧美酷刑日本凌虐凌虐| 一二三四区精品视频| 99久久久国产精品| 亚洲欧洲日韩一区二区三区| 国产精品77777竹菊影视小说| 欧美一级高清片| 青青草精品视频| 在线综合亚洲欧美在线视频| 亚洲成人三级小说| 欧美人与性动xxxx| 亚洲一区二区在线观看视频 | 风间由美一区二区av101 | 欧美亚洲国产怡红院影院| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 精品国产乱码久久久久久夜甘婷婷| 午夜一区二区三区视频| 欧美制服丝袜第一页| 亚洲韩国一区二区三区| 欧美伊人久久久久久午夜久久久久| 亚洲狠狠丁香婷婷综合久久久| 色综合天天做天天爱| 一区二区三区加勒比av| 欧美色图天堂网| 日韩成人午夜电影| 欧美成人乱码一区二区三区| 麻豆中文一区二区| 久久无码av三级| 成人妖精视频yjsp地址| 亚洲欧美国产三级| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | eeuss国产一区二区三区| 亚洲黄色在线视频| 91精品国产综合久久久久久漫画| 蜜桃精品在线观看| 国产欧美精品一区二区色综合| 成人h精品动漫一区二区三区| 中文字幕五月欧美| 欧美日韩一卡二卡| 国产在线精品一区二区 | 一本色道亚洲精品aⅴ| 亚洲午夜免费视频| 日韩免费福利电影在线观看| 粉嫩aⅴ一区二区三区四区五区| 亚洲欧美一区二区三区孕妇| 欧美色图一区二区三区| 狠狠色丁香久久婷婷综合_中 | 久久精品噜噜噜成人av农村| 26uuu精品一区二区| 91小视频免费观看| 调教+趴+乳夹+国产+精品| 26uuu久久综合| 91美女片黄在线观看| 日本欧美一区二区| 中文字幕一区av| 欧美va在线播放| 色av一区二区| 韩国成人精品a∨在线观看| 亚洲色图欧洲色图| 精品国内二区三区| 在线观看av一区| 国产精品一区二区视频| 日韩高清国产一区在线| 国产精品久久久久精k8| 欧美一级欧美三级| 色香蕉成人二区免费| 国产乱人伦精品一区二区在线观看 | 成人免费视频免费观看| 丝袜诱惑制服诱惑色一区在线观看| 国产三级欧美三级日产三级99| 欧美午夜寂寞影院| 99久久婷婷国产精品综合| 久久99热国产| 图片区小说区国产精品视频| 中文字幕一区日韩精品欧美| 精品对白一区国产伦| 日韩一区二区三区观看| 欧美精品日日鲁夜夜添| 欧美在线影院一区二区| 色中色一区二区| voyeur盗摄精品| 成人免费电影视频| 国产98色在线|日韩| 国产一区999| 国产在线麻豆精品观看| 精品制服美女丁香| 蜜桃一区二区三区在线观看| 同产精品九九九| 亚洲国产日韩一级| 亚洲午夜久久久| 亚洲综合在线免费观看| 一区二区在线观看av| 亚洲一区欧美一区| 亚洲狠狠爱一区二区三区| 亚洲成人av中文| 日韩黄色在线观看| 精品在线观看免费| 国内精品伊人久久久久av影院 | 日韩精品电影在线观看| 亚洲午夜电影在线观看| 亚洲网友自拍偷拍| 蜜乳av一区二区| 精品一区二区国语对白| 精品无码三级在线观看视频| 国产一区视频网站| 不卡区在线中文字幕| 99re视频精品| 欧美人妖巨大在线| 精品久久久久一区| 国产精品水嫩水嫩| 亚洲精选视频免费看| 无吗不卡中文字幕| 激情久久久久久久久久久久久久久久| 国产做a爰片久久毛片| 成人在线视频一区二区| 日本电影欧美片| 91精品国产色综合久久久蜜香臀| 日韩女同互慰一区二区| 中文在线免费一区三区高中清不卡 | 69成人精品免费视频| 精品日韩在线观看| 亚洲男人天堂一区| 久久精品国内一区二区三区| 国产成人欧美日韩在线电影| 在线观看日韩毛片| 精品久久五月天| 一卡二卡三卡日韩欧美| 久久99精品视频| 色综合天天综合网天天狠天天| 日韩一二三区视频| 亚洲精选免费视频| 国产在线国偷精品产拍免费yy| 色婷婷激情一区二区三区| 日韩三级在线观看| 亚洲特黄一级片| 国产精品123| 日韩一区二区三区免费观看| 中文字幕亚洲不卡| 国产美女视频91| 777xxx欧美| 亚洲欧美另类久久久精品| 韩国三级中文字幕hd久久精品|