如果您使用 Image.Save 方法将图像保存到 EMF/WMF,则会出现异常 (http://msdn.microsoft.com/en-us/library/ktx83wah.aspx http://msdn.microsoft.com/en-us/library/ktx83wah.aspx)
是否有其他方法将图像保存为 EMF/WMF?
有可用的编码器吗?
Image
是一个抽象类:你想要做什么取决于你是否正在处理一个Metafile
or a Bitmap
.
使用 GDI+ 创建图像并将其保存为 EMF 非常简单Metafile
。根据迈克的post https://stackoverflow.com/questions/152729/gdi-c-how-to-save-an-image-as-emf/152830#152830:
var path = @"c:\foo.emf"
var g = CreateGraphics(); // get a graphics object from your form, or wherever
var img = new Metafile(path, g.GetHdc()); // file is created here
var ig = Graphics.FromImage(img);
// call drawing methods on ig, causing writes to the file
ig.Dispose(); img.Dispose(); g.ReleaseHdc(); g.Dispose();
这是您大多数时候想要做的事情,因为这就是 EMF 的用途:以 GDI+ 绘图命令的形式保存矢量图像。
您可以保存一个Bitmap
使用上述方法并调用到 EMF 文件ig.DrawImage(your_bitmap)
,但请注意,这不会神奇地将光栅数据转换为矢量图像。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)