4

私たちのプログラムはベクトル グラフィックスを生成する必要があり、そのために EMF を選択しました。ただし、他のプログラムはこれらの画像をアンチエイリアスなしでレンダリングしているようです。SVG 形式には、一部またはすべてのオブジェクトをアンチエイリアスする必要があることを示すフラグがあることがわかりました。

アンチエイリアシングが必要であることを示すために、EMF 形式内に何らかのフラグまたはコマンドはありますか? もしそうなら、 System.Drawing.Imaging.Metafileクラスを使用してそのコマンドを生成する方法は?

ありがとうございました。

4

1 に答える 1

11

EMF ファイルは GDI コマンドのリストです。そのため、GDI+ で描画の前に SmoothingMode() 呼び出しを行っても、アンチエイリアスは適用されません。GDI コマンドを列挙してから、それを GDI+ コマンドに変換する必要があります。

Vista/Seven では、GdipConvertToEmfPlus/ConvertToEmfPlus という名前の GDI+ 1.1 関数を使用できます。プログラムを XP で動作させたい場合は、独自の列挙を記述してから、GDI+ コマンドに変換する必要があります。これは Delphiで行いました。ソース コードが役立つかもしれません。

于 2010-12-06T07:27:09.000 に答える