Windows元文件似乎不喜欢转换为增强型元文件。以下代码似乎wmf
按预期呈现:
[DllImport("gdi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
private static extern IntPtr GetMetaFile(string filename);
[DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
private static extern bool PlayMetaFile(IntPtr hdc, IntPtr hmf);
var bmpNew = new Bitmap(7104, 992);
using (var gfx = Graphics.FromImage(bmpNew))
{
var bmpHdc = gfx.GetHdc();
var mfHdc = GetMetaFile(@"C:\Users\mrtel_000\Desktop\test.wmf");
var res = PlayMetaFile(bmpHdc, mfHdc);
if (!res)
{
throw new Win32Exception();
}
gfx.ReleaseHdc();
}
bmpNew.Save("demo.png");
以上显然是泄漏资源,但演示了正确的播放。
结果:

(点击查看全尺寸)