在将 WMF 转换为 EMF+ 以获得抗锯齿渲染后,在转换为 EMF+ 后仅包含我的 WMF 的左上象限。
使用 EnumerateMetafile 绘制 WMF(转换前)可以工作,但不能消除锯齿,这正是我在这里所追求的。
任何想法为什么在转换时丢失了四分之三的图像?
WMF 由 AutoCAD LT 生成,大小为 32640x14586 像素,单位/英寸=1632。
EMF 中的记录类型(转换后)为:
EmfMin
Header
SetAntiAliasMode
SetPixelOffsetMode
SetTextRenderingHint
MultiplyWorldTransform
Save
MultiplyWorldTransform
SetWorldTransform
BeginContainerNoParams
SetAntiAliasMode
SetPixelOffsetMode
SetTextRenderingHint
SetPageTransform
SetWorldTransform
SetWorldTransform
SetWorldTransform
SetWorldTransform
SetWorldTransform
Object
Object
DrawPath
...
SetClipRegion
EndContainer
Restore
SetWorldTransform
EndOfFile
EmfEof
我已经尝试在元文件回调中跳过 SetPageTransform 和 SetClipRegion,并且之前还缩放了图形,但没有任何帮助。
我会看看是否可以共享原始 WMF 以供检查。
通过这个问题了解转换是如何在此处完成的: How to enable anti-aliasing when rendering WMF to BitMap in C#/WPF/WinForms?