本文转自http://www.cozyboy.com/archives/76.html

MSDN中有写.Net Framework没有EMF的编码器,如果对调用Save方法,保存的只是个PNG格式。

MSDN原文:

如果图像的文件格式的编码器不存在,则使用可移植网络图形 (PNG) 编码器。使用 Save 方法将图形图像保存为 Windows 图元文件格式 (WMF) 或增强型图元文件格式 (EMF) 文件时,结果文件将另存为可移植网络图形 (PNG) 文件。 发生此行为是由于 .NET Framework 的 GDI+ 组件没有可用来将文件另存为 .wmf 或 .emf 文件的编码器。

When you use the Save method to save a graphic image as a Windows Metafile Format (WMF) or Enhanced Metafile Format (EMF) file, the resulting file is saved as a Portable Network Graphics (PNG) file instead. This behavior occurs because the GDI+ component of the .NET Framework does not have an encoder that you can use to save files as .wmf or .emf files.

但实际操作中发现,确实还是可以保存正确的EMF文件的。

比如下段代码:

string filePath = @”D:\face.emf”;

Bitmap bmp = new Bitmap(220, 220);
Graphics gs = Graphics.FromImage(bmp);
Metafile mf = new Metafile(filePath, gs.GetHdc());

Graphics g = Graphics.FromImage(mf);

g.FillEllipse(Brushes.Gray, 0, 0, 100, 100);
g.DrawEllipse(Pens.Black, 0, 0, 100, 100);
g.DrawArc(new Pen(Color.Red, 10), 20, 20, 60, 60, 30, 120);

g.Save();
g.Dispose();
mf.Dispose();

打开文件,会看到一个可以无损缩放的笑脸。

仔细看,这里调用的是g.Save()!!(其实不调用也可以,估计g在Dispose的时候自动保存了)

但是如果调用Metafile的Save方法,则保存的是一个PNG格式。怪哉!

C#保存EMF矢量图形文件相关推荐

  1. matlab emf 读取,20140219-Emf_Demo EMF 矢量图 可以读取和保存EMF 的封闭类 非常实用 matlab 238万源代码下载- www.pudn.com...

    文件名称: 20140219-Emf_Demo下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Visual C++ 文件大小: 6312 KB 上传时间: 2014-07-10 下载次 ...

  2. 计算机中常用的矢量图形文件,第3章 电脑图像基础知识.ppt

    <第3章 电脑图像基础知识.ppt>由会员分享,可在线阅读,更多相关<第3章 电脑图像基础知识.ppt(15页珍藏版)>请在人人文库网上搜索. 1.第03章 电脑图像基础知识, ...

  3. emf矢量图格式转eps格式,解决Illustrator无法打开emf等格式

    一般SCI期刊要求图片为eps格式 步骤1 使用ppt绘图,保存为emf矢量图格式 步骤2 新建Word,将上步保存的矢量图插入,再保存为pdf格式 步骤3 使用 Adobe Illustrator ...

  4. matlab 保存为矢量图,将绘图保存为图像或向量图形文件

    将绘图保存为图像或向量图形文件 您可以使用坐标区工具栏中的导出按钮 ,或通过调用 exportgraphics 函数,将绘图另存为图像,或另存为向量图形文件.在决定要使用的内容类型时,应考虑要将文件放 ...

  5. python获得emf矢量图

    模板: #开头 import matplotlib.pyplot as plt plt.rcParams['backend'] = 'SVG' ____________________________ ...

  6. 计算机常用的矢量图形文件,学位计算机考试2

    多媒体技术概述 1. 媒体(Media)是指承载或传递信息的载体.包括书刊领域,绘画领域,摄影领域,电影.电视领域 2.. 多媒体是指文本.图形.图象.声音.影像等这些"单"媒体和 ...

  7. python plt图片保存emf类型_matplotlib---保存图片出现的问题

    1.保存图片为空白 当使用如下代码保存使用 plt.savefig 保存生成的图片时,结果打开生成的图片却是一片空白. import matplotlib.pyplot as plt "&q ...

  8. android 矢量图形文件,Android Studio进行APP设计开发之矢量图及XML文件转换

    Android Studio进行APP设计开发之矢量图及XML文件转换 当我们使用Android studio进行APP设计开发时,会用到矢量图,那么要将矢量图运用到安卓工程drawable中去,就需 ...

  9. 解决 python pytplot绘图 图片长宽无法调整、文件保存为矢量图的问题记录。

    这个问题困扰我许久,本身文档提供的控制函数都试过了,文档见下.https://pytplot.readthedocs.io/en/latest/index.html 诸如这些控件调整都是失败的. ws ...

最新文章

  1. 服务端主动推送数据,除了 WebSocket 你还能想到啥?
  2. review what i studied `date` - 2017-4-11
  3. XHR(XMLHttpRequest)与Linux下的CGI交互
  4. spark-submit的执行原理
  5. 用 toto 3分钟建轻量级博客
  6. python植树问题代码_BERT可以上几年级了?Seq2Seq“硬刚”小学数学应用题
  7. 没有用括号确定操作符的优先级顺序,导致错误一例
  8. 网络安全系列之四十九 IIS6.0权限设置
  9. 《中國姓氏大全》【带拼音】
  10. python避障小车_基于深度学习的自动避障小车_7_代码说明
  11. 超级详细的java Collection集合面试题
  12. Axure 8.1.0.3381注册码
  13. c语言程序求200以内的全部素数,求100~200之间的全部素数
  14. 墨画子卿第四章第5节:两个时辰
  15. 每一个小孩都是种子,请允许Ta在成长的路上跌跌撞撞。耐心的等待,种子一定能长成参天大树!
  16. 【C++】模拟String,柔性数组,运算符重载,写实拷贝
  17. (10.1.6)极简主义
  18. 今日头条校园招聘历年经典面试题汇总:C++研发岗
  19. install developing enviroment
  20. 19.2 NESMA 唯一和非唯一搜索条件的组合案例分析

热门文章

  1. layui的laydate实现季度选择
  2. GlusterFS如何解决分布式文件系统的难题?
  3. 【CISSP备考】2021年加油冲
  4. 安装centos6.5 i686,安装vnc,配置中文界面
  5. 我作为bertelsmann技术和深度学习纳米学位毕业生的经验
  6. TortoiseSVN 分支创建与合并
  7. 蓝桥杯——特殊回文数
  8. #104-[SPFA]想越狱的小杉
  9. 龙芯交叉编译环境搭建之交叉编译工具链配置
  10. 使用 ReportLab,python操作PDF一键生成