这似乎是在的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");
以上是明显泄漏资源,但是它展示了一个正确播放。
结果:
(Click for Full Size)
你能告诉你的代码,MCVE –
我觉得首先这将是很好知道为什么在我提到的那些应用程序呈现不同。 –
我们如何才能知道,不知道如何渲染它?你不会显示你的代码,也不会显示你的图像如何呈现。感觉你没有完全投入。 –