MFC 如何保存(另存为)加载到对话框中的位图? 15
我创建了一个基于单文件的MFC框架程序,并创建了一个对话框,打开一幅BMP图片显示在图片控件里面,现在想对这幅图片进行各种处理,图片空间里的图片会实时变化,然后保存。请问...
我创建了一个基于单文件的MFC框架程序,并创建了一个对话框,打开一幅BMP图片显示在图片控件里面,现在想对这幅图片进行各种处理,图片空间里的图片会实时变化,然后保存。请问各位大侠,如何保存处理后的图片啊?
下面是我将图片加载到对话框的源码
void CSmartLoadBmpDlg::OnLoadbmp()
{
CFileDialog flDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY |
OFN_OVERWRITEPROMPT,
"位图|*.bmp||"); //定义文件打开对话框
if (flDlg.DoModal()==IDOK)
{
CString szBmpName; //定义字符串变量
szBmpName = flDlg.GetPathName(); //获取位图文件名
HBITMAP hOldBmp = m_Bmp.SetBitmap((HBITMAP)LoadImage(NULL,
szBmpName, IMAGE_BITMAP,0, 0, LR_LOADFROMFILE));
//加载并显示位图
DeleteObject(hOldBmp); //释放之前的位图资源
}
} 展开
下面是我将图片加载到对话框的源码
void CSmartLoadBmpDlg::OnLoadbmp()
{
CFileDialog flDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY |
OFN_OVERWRITEPROMPT,
"位图|*.bmp||"); //定义文件打开对话框
if (flDlg.DoModal()==IDOK)
{
CString szBmpName; //定义字符串变量
szBmpName = flDlg.GetPathName(); //获取位图文件名
HBITMAP hOldBmp = m_Bmp.SetBitmap((HBITMAP)LoadImage(NULL,
szBmpName, IMAGE_BITMAP,0, 0, LR_LOADFROMFILE));
//加载并显示位图
DeleteObject(hOldBmp); //释放之前的位图资源
}
} 展开
3个回答
展开全部
可以使用GetDIBits先建立个DIB位图,在打上个BITMAPFILEINFO头一起写道文件里,文件格式和api格式就差个位图文件首部. 文件首部后的api格式的最前面有几个版本,不过在文件里一般都是用
BITMAPINFOHEADER
BITMAPINFOHEADER
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你得填充位图文件格式然后写文件保存。
建议你用GDI+库,容易很多~
建议你用GDI+库,容易很多~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据你所说的程序基本要求,我跟了一下程序,没有找到MFC中对这部分操作的源码(我的调试技术比较菜,可能是我的原因).如果不加处理函数的话,可能就得改MFC中的源码了(我个人认为).
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询