【问题标题】:EMF with forced antialiasing带强制抗锯齿的 EMF
【发布时间】:2010-11-28 05:17:28
【问题描述】:

我们的程序需要生成矢量图形,为此我们选择了 EMF。但是,其他程序似乎将这些图像呈现为非抗锯齿。我发现 SVG 格式确实有一个标志来指示一些/所有对象应该被抗锯齿。

在 EMF 格式中是否有任何类型的标志或命令来表明我们想要抗锯齿?如果是这样,如何使用System.Drawing.Imaging.Metafile 类生成该命令?

谢谢。

【问题讨论】:

    标签: .net vector-graphics antialiasing .emf


    【解决方案1】:

    EMF 文件是 GDI 命令的列表。所以它不会被抗锯齿,即使在 GDI+ 下,你在绘图之前调用 SmoothingMode()。您必须枚举 GDI 命令,然后将其转换为 GDI+ 命令。

    在 Vista/Seven 下,您可以使用名为 GdipConvertToEmfPlus/ConvertToEmfPlus 的 GDI+ 1.1 函数。 如果您希望您的程序与 XP 一起工作,您应该编写自己的枚举,然后转换为 GDI+ 命令。我们有done this in Delphi,或许源码可以帮到你。

    【讨论】:

    • @MisterDownVoter 请解释一下你的 -1 !即使将 SmoothingMode 设置为 AntiAlias,EMF 文件也永远不会进行抗锯齿处理。您需要先将其转换为 EMF+ 格式。上面的乔希回答不正确,我的是。因为之前的回答不行,所以才写到这里,费了好大劲才找到解决办法。
    猜你喜欢
    • 2010-12-19
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 2016-06-28
    • 2011-07-05
    • 2014-03-19
    相关资源
    最近更新 更多