強制アンチエイリアスを使用したEMF
-
07-07-2019 - |
質問
プログラムはベクターグラフィックスを生成する必要があり、そのためにEMFを選択しました。ただし、他のプログラムはこれらの画像をアンチエイリアス処理しないように見えます。 SVG形式には、一部またはすべてのオブジェクトをアンチエイリアスする必要があることを示すフラグがあることがわかりました。
EMF形式の中に、アンチエイリアスが必要であることを示すフラグやコマンドがありますか?その場合、 System.Drawingを使用してそのコマンドを生成する方法.Imaging.Metafile クラス?
ありがとう。
解決
EMFファイルは、GDIコマンドのリストです。そのため、GDI +の下で、描画の前にSmoothingMode()呼び出しを行った場合でも、アンチエイリアス化されません。 GDIコマンドを列挙してから、GDI +コマンドに変換する必要があります。
Vista / Sevenでは、GdipConvertToEmfPlus / ConvertToEmfPlusという名前のGDI + 1.1関数を使用できます。 プログラムをXPで動作させたい場合は、独自の列挙を作成してから、GDI +コマンドに変換する必要があります。 Delphiでこれを実行しました、おそらくソースコードが役立つかもしれません。
所属していません StackOverflow