700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > (数字图像处理)打开显示图片 以及图像处理 保存。(一)

(数字图像处理)打开显示图片 以及图像处理 保存。(一)

时间:2020-03-31 14:15:05

相关推荐

(数字图像处理)打开显示图片 以及图像处理 保存。(一)

VS C++创建 MFC 基于对话框的应用程序、打开显示图片以及在此过程中遇到的一些问题和解决方法

一、基于MFC对话框创建步骤

1.新建一个MFC工程

2.根据自己需要修改名称和位置,点击确定

3.选择基于对话框,点击下一步

4.这里默认,点击下一步

5.这里也是默认的配置

6.这里选择APP类型,点击完成。

7.就会生成项目工程,可以把自动生成的一些控件删掉。

8.然后找到右边工具箱,添加两个picture控件和一个按钮控件

9.分别更改3个控件ID(右键点击属性即可更改)

10.更改配置属性

属性/配置属性/常规/使用unicode字符集/使用多字节字符集

二、添加变量

1.点击picture control 框,右键为两个picture控件添加control变量,类型为CStatic,变量名分别为M_PICTURE1和M_PICTURE2.

2.点击对话框,右键添加变量保存图片路径和名称变量,CString类型,变量名strFilePath,strFileName。

同理另外一个也是这样,添加完之后点击完成。

3.右键查看类向导,就可以看到添加的变量。

三、代码

1.双击button(打开)控件,此时就会跳转到程序页面。

2.参考代码如下:

为按钮添加打开文件的功能,并默认打开.png格式的文件,并在打开文件右下角添加文件类型选项,并将打开的图片显示在picture控件上。

CFileDialog fileDlg(TRUE, _T("png"), NULL, 0, _T("image Files(*.bmp; *.jpg;*.png)|*.JPG;*.PNG;*.BMP|All Files (*.*) |*.*|"), this);fileDlg.DoModal();strFilePath=fileDlg.GetPathName();//文件路径strFileName = fileDlg.GetFileName();//文件名if (strFilePath == _T("")){return;}CImage image;image.Load(strFilePath);CRect rectControl; //控件矩形对象m_picture1.GetClientRect(rectControl);CDC *pDc = m_picture1.GetDC(); //设备上下文对象的类rectControl = CRect(rectControl.TopLeft(), CSize((int)rectControl.Width(), (int)rectControl.Height()));m_picture1.SetBitmap(NULL);//清空pictureimage.Draw(pDc->m_hDC, rectControl); //将图片绘制到Picture控件表示的矩形区域image.Destroy();m_picture1.ReleaseDC(pDc);

四.运行就会生产对话框如下

点击打开,就能选择想要打开的图片

五、过程中遇到的一些问题,以及解决方法

1.运行时,显示“VS转换到 COFF 期间失败 文件无效或损坏”。

解决方法:

找到C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\文件夹里的cvtres.exe文件删掉最老版本的就行。

2运行时,提示"不支持尝试执行的操作",可能是删除了某些控件,但是对应的控件变量没有删除掉,或者宏重定义。

解决办法:

在控件关联函数 中查找并删除对应的控件变量,或者看自己有没有宏重定义。

参考文章:

胡子拉渣青啊青博主的文章《C++ MFC打开图片并进行简单算法处理》。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。