MFC中将所画图像保存到图像文件
来源:互联网 发布:js两个数组去重复 编辑:程序博客网 时间:2024/06/10 07:47
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);}
- MFC中将所画图像保存到图像文件
- MFC中将所画图像保存到图像文件
- MFC中将所画图像保存到图像文件
- 如何在Java应用中将图像存储到图像文件中?
- QtChart 保存到图像文件
- [zz]如何在Java应用中将图像存储到图像文件中?
- 使用 Video4Linux 采集USB摄像头的图像,并保存到一张 jpg图像文件中的程序
- mfc中将接收到的十六进制数保存到TXT文件,保存形式为十进制
- 从下载图像文件、操作图像文件像素、保存图像文件到本地看银光跨域123
- 保存图像到相册
- matlab中将灰度图像转换成二值图像保存
- silverlight中将图片控件保存到文件
- Java中将图片保存到数据库中
- AS3中将文本直接保存到本地
- java中将图片保存到数据库中
- JDBC中将图片保存到数据库
- java中将图片保存到数据库中
- ThinkPHP中将session保存到memcache中
- IE6中absolute定位的对象消失了!
- UAC技巧:使 Windows 内置程序默认以管理员权限运行
- linux下批量增加文件后缀名
- LoadControl 传递参数
- 嵌入式博客收集
- MFC中将所画图像保存到图像文件
- 设计模式学习笔记(十四)—Command模式
- 什么是writeObject 和readObject?可定制的序列化过程
- div在IE与FireFox中的差别
- 操作系统安装大全之详解双主分区独立双系统的安装及启动菜单的制作
- Linux socket 编程,第一部分
- 十进制小数 转 二进制
- POJ 2313 中位数的应用
- 案3 最佳方案——独立双系统安装