這似乎是在的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 –
我覺得首先這將是很好知道爲什麼在我提到的那些應用程序呈現不同。 –
我們如何才能知道,不知道如何渲染它?你不會顯示你的代碼,也不會顯示你的圖像如何呈現。感覺你沒有完全投入。 –