C#保存EMF矢量图形文件
本文转自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矢量图形文件相关推荐
- 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 下载次 ...
- 计算机中常用的矢量图形文件,第3章 电脑图像基础知识.ppt
<第3章 电脑图像基础知识.ppt>由会员分享,可在线阅读,更多相关<第3章 电脑图像基础知识.ppt(15页珍藏版)>请在人人文库网上搜索. 1.第03章 电脑图像基础知识, ...
- emf矢量图格式转eps格式,解决Illustrator无法打开emf等格式
一般SCI期刊要求图片为eps格式 步骤1 使用ppt绘图,保存为emf矢量图格式 步骤2 新建Word,将上步保存的矢量图插入,再保存为pdf格式 步骤3 使用 Adobe Illustrator ...
- matlab 保存为矢量图,将绘图保存为图像或向量图形文件
将绘图保存为图像或向量图形文件 您可以使用坐标区工具栏中的导出按钮 ,或通过调用 exportgraphics 函数,将绘图另存为图像,或另存为向量图形文件.在决定要使用的内容类型时,应考虑要将文件放 ...
- python获得emf矢量图
模板: #开头 import matplotlib.pyplot as plt plt.rcParams['backend'] = 'SVG' ____________________________ ...
- 计算机常用的矢量图形文件,学位计算机考试2
多媒体技术概述 1. 媒体(Media)是指承载或传递信息的载体.包括书刊领域,绘画领域,摄影领域,电影.电视领域 2.. 多媒体是指文本.图形.图象.声音.影像等这些"单"媒体和 ...
- python plt图片保存emf类型_matplotlib---保存图片出现的问题
1.保存图片为空白 当使用如下代码保存使用 plt.savefig 保存生成的图片时,结果打开生成的图片却是一片空白. import matplotlib.pyplot as plt "&q ...
- android 矢量图形文件,Android Studio进行APP设计开发之矢量图及XML文件转换
Android Studio进行APP设计开发之矢量图及XML文件转换 当我们使用Android studio进行APP设计开发时,会用到矢量图,那么要将矢量图运用到安卓工程drawable中去,就需 ...
- 解决 python pytplot绘图 图片长宽无法调整、文件保存为矢量图的问题记录。
这个问题困扰我许久,本身文档提供的控制函数都试过了,文档见下.https://pytplot.readthedocs.io/en/latest/index.html 诸如这些控件调整都是失败的. ws ...
最新文章
- 服务端主动推送数据,除了 WebSocket 你还能想到啥?
- review what i studied `date` - 2017-4-11
- XHR(XMLHttpRequest)与Linux下的CGI交互
- spark-submit的执行原理
- 用 toto 3分钟建轻量级博客
- python植树问题代码_BERT可以上几年级了?Seq2Seq“硬刚”小学数学应用题
- 没有用括号确定操作符的优先级顺序,导致错误一例
- 网络安全系列之四十九 IIS6.0权限设置
- 《中國姓氏大全》【带拼音】
- python避障小车_基于深度学习的自动避障小车_7_代码说明
- 超级详细的java Collection集合面试题
- Axure 8.1.0.3381注册码
- c语言程序求200以内的全部素数,求100~200之间的全部素数
- 墨画子卿第四章第5节:两个时辰
- 每一个小孩都是种子,请允许Ta在成长的路上跌跌撞撞。耐心的等待,种子一定能长成参天大树!
- 【C++】模拟String,柔性数组,运算符重载,写实拷贝
- (10.1.6)极简主义
- 今日头条校园招聘历年经典面试题汇总:C++研发岗
- install developing enviroment
- 19.2 NESMA 唯一和非唯一搜索条件的组合案例分析