用VC++的MFC实现图像的打开,显示,保存功能的代码

我是还没入门的新手,所以每个步骤都要求详细,在哪个文件里哪个地方加什么代码都请说明,并附上代码,最好还能解释一下它的作用。找过好多网上提供的代码,都有报错,所以请把步骤写... 我是还没入门的新手,所以每个步骤都要求详细,在哪个文件里哪个地方加什么代码都请说明,并附上代码,最好还能解释一下它的作用。找过好多网上提供的代码,都有报错,所以请把步骤写清楚些,待验证过正确之后,赏分。 展开
 我来答
胡声天井红B
2013-04-23 · TA获得超过1182个赞
知道小有建树答主
回答量:327
采纳率:0%
帮助的人:291万
展开全部
这个,工程量有点大了
有两种方法:
第一种:调用opencv库,在MFC中,这是一种非常方便的方法,但前提是已经配置好戚碧了opencv;
第二种:自己写一个类,然返仔氏后进行打开漏散,显示和保存,这种方法我也会,不过工程量和代码非常多,不知道你要哪种?
更多追问追答
追问
opencv还没用过,我想要第二种的
追答
OK。。。信息量可能有点大,你给个邮箱,我发个类给你

第一步:将这个类添加到你的工程中;
第二步:在你的MFC中利用类向导位你的doc类添加OnOpenDocument这个函数‘
第三步:在doc类的头文件里面public里面定义:CBmpFile hDIB;,这个hDIB就是用来存储你的图像的。
第四步:在你第二步加载的OnOpenDocument(LPCTSTR lpszPathName)函数里面,添加代码如下所示:
BOOL CPatternRecognitionDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
if (!CDocument::OnOpenDocument(lpszPathName))
return FALSE;
// TODO: Add your specialized creation code here
/*CPatternRecognitionView *mView=(CPatternRecognitionView *)((CMainFrame *)AfxGetMainWnd())->GetActiveView();*/
hDIB.Load4File((LPCSTR)lpszPathName);
UpdateAllViews(NULL);
return TRUE;
}
第五步:显示:在view类的ondraw()函数中添加代码如下所示:
void CPatternRecognitionView::OnDraw(CDC* pDC)
{
CPatternRecognitionDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
m_bmp=&pDoc->hDIB;
int nXsize,nYsize;//图像高宽
nXsize = m_bmp->m_Cols;
nYsize = m_bmp->m_Rows;
//temp->CreateBmp(nXsize,nYsize,NULL);
CSize sizeTotal;
//m_bmp=*(pDoc->temp1);
sizeTotal.cx = m_bmp->m_Cols;
sizeTotal.cy = m_bmp->m_Rows;
SetScrollSizes(MM_TEXT, sizeTotal);
m_bmp->Draw2DC(pDC->m_hDC,0,0);
// TODO: add draw code for native data here
}
到这里显示就成功了
第6步:存储,在doc类里面用第二步相同的方法加载OnSaveDocument(LPCTSTR lpszPathName) 函数,在该函数中添加代码如下所示:
BOOL CPatternRecognitionDoc::OnSaveDocument(LPCTSTR lpszPathName)
{
// TODO: Add your specialized code here and/or call the base class
hDIB.Save2File((LPCSTR)lpszPathName);
return CDocument::OnSaveDocument(lpszPathName);
}

OK了!!希望能帮到你。。
zjnny
2013-04-23 · TA获得超过2037个赞
知道小有建树答主
回答量:1055
采纳率:100%
帮助的人:1058万
展开全部
vc++数字图像处理的开头部分有讲解,书中有源代码(在mfc下的)。
windows api级别的,需要了解罩告图像文件的结构
加载BITMAP,新建一个图像文件,将BITMAP的dib信息,header info信息写入这个图像文件码瞎,关闭文件句柄
看你的说法MFC还不会用吧,至少要了解消息物模明响应再说
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
归悦欣cf
2013-04-24 · TA获得超过1443个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1312万
展开全部
使用GDI+相对容易一些。代码量也少一些。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lu9011116
2013-04-24
知道答主
回答量:16
采纳率:0%
帮助的人:1.8万
展开全部
哥们,或伍你还是去搞matlab吧,MFC中CDib类牵扯衫陪或到BMP图像的四部份信息和MFC中多种类的调用,一乱困时半会不好理解,可以去网上下载源码,了解CDib类调出的长宽,头指针就足够了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式