2009-09-14 227 views
4

我們的程序需要生成矢量圖形,我們選擇EMF。但是,似乎其他程序渲染這些圖像是非反鋸齒的。我發現SVG格式確實有一個標誌來指示某些/所有對象應該被反鋸齒。強制抗鋸齒EMF

EMF格式內是否有任何標誌或命令表明我們想要抗鋸齒?如果是這樣,如何使用System.Drawing.Imaging.Metafile類生成該命令?

謝謝。

回答

11

EMF文件是GDI命令列表。因此,即使在GDI +下,您在繪圖之前放置了一個SmoothingMode()調用,它也不會被反鋸齒。您必須枚舉GDI命令,然後將其轉換爲GDI +命令。

在Vista/Seven下,可以使用名爲GdipConvertToEmfPlus/ConvertToEmfPlus的GDI + 1.1函數。 如果你希望你的程序能夠使用XP,你應該編寫自己的枚舉,然後轉換成GDI +命令。我們done this in Delphi,也許源代碼可能會幫助你。

+2

@MisterDownVoter請給出你的-1的一些解釋!即使將SmoothingMode設置爲AntiAlias,EMF文件也不會永遠不會反鋸齒。您需要將其轉換爲EMF +格式。上面的喬希答案是不正確的,我的是。我只是在這裏寫的,因爲以前的答案沒有工作,我花了很多時間找出解決方案。 – 2011-01-20 18:42:52