bit*_*onk 7 .net c# gdi+ antialiasing
有没有办法在启用了抗锯齿的情况下绘制一个emf图元文件(从绘图工具导出)?我尝试的工具无法导出emf文件,因此我想知道在我的控件的OnPaint覆盖中绘制emf时是否可以手动将其重新打开.
如果任何人都可以确认在技术上可以生成抗锯齿的emf文件,另一种解决方案是使用可以导出到抗锯齿emf的绘图工具或者让第三方转换器稍后执行此操作.如果有人知道这样的工具,请告诉我.
编辑:当看到emf指令时,似乎emf本身并不能真正存储信息,无论它是否被渲染为抗锯齿.至少我找不到任何东西.抗锯齿更有可能是由回放引擎完成的.例如,当我在Word 2007中打开一个emf时,它会被渲染为抗锯齿.但是当我用GDI +"回放引擎"(Graphics.DrawImage(...))绘制它时.或者当我查看标准的Windows图像查看器时.这让我相信一些工具实际上有自己的emf播放引擎.所以也许有免费的.NET库(最好有源代码)给我一个存储在解析的emf文件中的emf指令的对象模型,所以我可以自己播放而不是使用Graphics.DrawImage(...)?
我们在DirectX项目中遇到了类似的问题.升级和降尺度在一定程度上起作用,但它正在伪造它.如果这是你需要反复做的事情,你或许可以解析WMF的记录并用GDI +抗锯齿来绘制它们.
以下线程支持这一点(但它们是从2005年开始的,所以事情可能已经发生了变化):
http://www.dotnet247.com/247reference/msgs/28/144605.aspx
[编辑:]
这三个程序可能会为您完成这项工作:我假设您可以手动执行此操作:
http://emf-to-vector-converter-command-line-ser.smartcode.com/info.html
http://www.verypdf.com/pdf-editor/index.html
http://www.ivanview.com/converter/emf-batch-converter.html
[编辑II:]
好吧,这是一个让你以各种方式检查EMF的程序:
http://download.cnet.com/windows/3055-2383_4-10558240.html?tag=pdl-redir
...这里有一个免费软件库,可以让您解析122个EMF命令并将它们输出到GDI +中.这可能应该做的伎俩:
http://www.codeproject.com/KB/GDI-plus/emfexplorer.aspx?msg=2359423
...哦,并注意代码项目页面上的注释#3.看起来有人曾经撞过墙头.希望这能解决你的问题.