0

拡張メタファイル (C# で GDI+ を介して構築) を古いスタイルの Windows メタファイルに変換すると、座標が最も近い画面ピクセルに丸められるため、結果は非常に粗くなります。どちらかを介して変換すると、これが表示されます

GetWinMetaFileBits(emfh, bits_l, bits, MM_ANISOTROPIC, GetDC(0));

または GDI+ の Metafile::EmfToWmfBits を使用します。犯人はおそらく使用されているスクリーンDCです。 この投稿は、私にとっては機能するプリンター DC の使用を示唆していますが、ユーザーがプリンターをインストールしていない場合は明らかに機能しません。より良い方法はありますか?この目的のために高解像度のメモリ内 DC を作成することを検討しましたが、そのための適切なドキュメントが見つからず、使用される RAM についても心配しています。

4

2 に答える 2

1

通常の方法では、はるかに高い解像度のメモリ DC を作成し、それにレンダリングしてから、必要に応じて保存します。これにより、フォントサイズが台無しになる可能性があることに注意してください。

 HDC memDC = CreateCompatibleDC ( hDC );
 HBITMAP memBM = CreateCompatibleBitmap ( hDC, nWidth, nHeight );
 SelectObject ( memDC, memBM );

nWidth を使用すると、 nHeight ははるかに大きくなります。
CreateCompatible ビットはすべての dpi などを設定する必要がありますが、フォントが再スケーリングではなく固定ピクセル サイズで描画されるという問題が発生しました。

于 2011-02-09T00:03:41.287 に答える
0

ENMETA.EXE について Google に問い合わせる

マイクロソフトによる説明

ダウンロードの例が含まれています。

于 2011-02-10T20:05:59.897 に答える