如何在.WMF文件中保存MFC CImage?

时间:2015-11-27 07:08:07

标签: c++ visual-c++ mfc

如何在.WMF文件中保存MFC CImage?如果我使用CImage.Save方法以.WMF格式保存它我收到错误"保存失败:80004005 - 未指定错误"。

还有其他方法以.WMF格式保存MFC CImage吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

CImage不支持矢量图形,如增强型图元文件格式(EMF) Windows图元文件格式(WMF)。它只是来自 GDI + Image类的包装类,它仅支持栅格图像格式: JPEG,GIF,BMP 和可移植网络图形( PNG )格式。

以下是基于GDI +保存EMF / WMF文件的方法:

Bitmap* pBitmap;
...
// do some paintings on pBitmap
...
CStringW sFileName = L"c:\\Files\Image.emf";

CDC* pDC = GetDC();
Metafile* pMetaFile = new Metafile(sFileName, pDC->m_hDC);
Graphics graphics(pMetaFile);
graphics.DrawImage(pBitmap, 0, 0, pBitmap->GetWidth(), 
                                  pBitmap->GetHeight());