MFC中将所画图像保存到图像文件
来源:互联网 发布:安庆市民心声网络问政 编辑:程序博客网 时间:2024/05/15 12:29
- void CmyPaintView::OnBmpSave()
- {
- CClientDC dc(this);
- CRect rect;
- BOOL showMsgTag; //是否要弹出”图像保存成功对话框"
- GetClientRect(&rect); //获取画布大小
- HBITMAP hbitmap = CreateCompatibleBitmap(dc, rect.right-rect.left, rect. bottom-rect.top); //创建兼容位图
- HDC hdc = CreateCompatibleDC(dc); //创建兼容DC,以便将图像保存为不同的格式
- HBITMAP hOldMap = (HBITMAP)SelectObject(hdc,hbitmap); //将位图选入DC,并保存返回值
- BitBlt(hdc,0,0,rect.right-rect.left,rect.bottom-rect.top,dc,0,0,SRCCOPY); //将屏幕DC的图像复制到内存DC中
- CImage image;
- image.Attach(hbitmap); //将位图转化为一般图像
- if (!saveTag) //如果图像是第一次被写入,则打开对话框
- {
- saveTag = TRUE;
- showMsgTag = TRUE;
- CString strFilter = _T("位图文件(*.bmp)|*.bmp|JPEG 图像文件|*.jpg|
- GIF图像文件|*.gif|PNG图像文件|*.png|其他格式*.*)|*.*||");
- CFileDialog dlg(FALSE,_T("bmp"),_T("iPaint1.bmp"),NULL,strFilter);
- if (dlg.DoModal() != IDOK)
- return;
- CString strFileName; //如果用户没有指定文件扩展名,则为其添加一个
- CString strExtension;
- strFileName = dlg.m_ofn.lpstrFile;
- if (dlg.m_ofn.nFileExtension = 0) //扩展名项目为0
- {
- switch (dlg.m_ofn.nFilterIndex)
- {
- case 1:
- strExtension = "bmp";break;
- case 2:
- strExtension = "jpg";break;
- case 3:
- strExtension = "gif";break;
- case 4:
- strExtension = "png";break;
- default:
- break;
- }
- strFileName = strFileName + "." + strExtension;
- }
- saveFilePath = strFileName; //saveFilePath为视类中的全局变量,类型为CString
- }
- else
- {
- showMsgTag = FALSE;
- }
- //AfxMessageBox(saveFilePath); //显示图像保存的全路径(包含文件名)
- HRESULT hResult = image.Save(saveFilePath); //保存图像
- if (FAILED(hResult))
- {
- MessageBox(_T("保存图像文件失败!"));
- }
- else
- {
- if(showMsgTag)
- MessageBox(_T("文件保存成功!"));
- }
- image.Detach();
- SelectObject(hdc,hOldMap);
- }
0 0
- MFC中将所画图像保存到图像文件
- MFC中将所画图像保存到图像文件
- MFC中将所画图像保存到图像文件
- 如何在Java应用中将图像存储到图像文件中?
- QtChart 保存到图像文件
- [zz]如何在Java应用中将图像存储到图像文件中?
- 使用 Video4Linux 采集USB摄像头的图像,并保存到一张 jpg图像文件中的程序
- mfc中将接收到的十六进制数保存到TXT文件,保存形式为十进制
- 从下载图像文件、操作图像文件像素、保存图像文件到本地看银光跨域123
- 保存图像到相册
- matlab中将灰度图像转换成二值图像保存
- silverlight中将图片控件保存到文件
- Java中将图片保存到数据库中
- AS3中将文本直接保存到本地
- java中将图片保存到数据库中
- JDBC中将图片保存到数据库
- java中将图片保存到数据库中
- ThinkPHP中将session保存到memcache中
- Javascript高级程序设计——14.面向对象与原型(3)
- 省市区县三级联动JAVA+MySQL+JQuery
- [算法]邮箱加密
- 面向对象(数组代码分析)
- 24Windows消息队列
- MFC中将所画图像保存到图像文件
- 14 并发编程
- Uva816 Abbott's Revenge【bfs】【例题6-14】
- 重拾python 三十二
- HTTPS①通信流程
- 神级以下必读! ~程序猿学习资料集 02
- 14.1 什么是线程
- 25FatMouse的语言
- Eclipse的常用快捷键