单文档中图片的保存(多种格式)!

sciencstf 2010-01-26 11:30:35
多种图片格式的保存,主要是jpg,raw的 ,哪位大虾能帮帮忙.
...全文
166 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sciencstf 2010-01-26
  • 打赏
  • 举报
回复
没什么,已近解决了,是save这个函数没搞清楚
sjdev 2010-01-26
  • 打赏
  • 举报
回复
楼主想说什么? CImage咋了?
sciencstf 2010-01-26
  • 打赏
  • 举报
回复
CImage::Save方法能将一个图像文件按另一种格式来保存,它的原型如下:

HRESULT Save( LPCTSTR pszFileName, REFGUID guidFileType= GUID_NULL);

  其中,pszFileName用来指定一个文件名,guidFileType用来指定要保存的图像文件格式,当为GUID_NULL时,其文件格式由文件的扩展名来决定,这也是该函数的默认值。它还可以是GUID_BMPFile(BMP文件格式)、GUID_PNGFile(PNG文件格式)、GUID_JPEGFile(JPEG文件格式)和GUID_GIFFile(GIF文件格式)。

  例如,下面的过程是在Ex_Image示例基础上进行的,我们在CEx_ImageView类添加ID_FILE_SAVE_AS的COMMAND事件映射程序,并添加下列代码:

void CEx_ImageView::OnFileSaveAs()
{
 if (m_Image.IsNull()) {
  MessageBox("你还没有打开一个要保存的图像文件!");
  return;
 }

 CString strFilter;
 strFilter = "位图文件|*.bmp|JPEG 图像文件|*.jpg| \
GIF 图像文件|*.gif|PNG 图像文件|*.png||";
 CFileDialog dlg(FALSE,NULL,NULL,NULL,strFilter);
 if ( IDOK != dlg.DoModal())
  return;

 // 如果用户没有指定文件扩展名,则为其添加一个
 CString strFileName;
 CString strExtension;

 strFileName = dlg.m_ofn.lpstrFile;
 if (dlg.m_ofn.nFileExtension == 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;
 }

 // 图像保存
 HRESULT hResult = m_Image.Save(strFileName);
 if (FAILED(hResult))
  MessageBox("保存图像文件失败!");
}
loop_k 2010-01-26
  • 打赏
  • 举报
回复
可以用OpenCV来保存图片 支持bmp jpg tif png等
一个函数就搞定了

要是不用OpenCV 就用CXimage吧 也很方便
sjdev 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sciencsongtiefei 的回复:]
没什么,已近解决了,是save这个函数没搞清楚
[/Quote]

汗,还没看到问题呢,就解决了。
fandh 2010-01-26
  • 打赏
  • 举报
回复
奥,解决了呀,那就结贴吧!这要提高结贴率,而且,还有50%的分数返还!

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧