0

こんにちは、

透明な領域を含む.wmfファイルの.netの内部(System.Drawing)ベースのMetaFile/画像処理に少し問題があります。基本的に、MetaFile.LoadFile(...)を実行し、それをtiff / pngなどとして保存するときはいつでも、そのソースファイルの一部の領域が欠落しています。実際に特定することはできませんが、メタファイル内のベクターベースの情報は問題なく機能しているようですが、ピクセルベースの領域(.wmf内に配置された画像など)が欠落しています。

信頼できる.netネイティブでサードパーティ以外の方法でwmfファイルを適切に変換する方法を知っている人はいますか(最終的なピクセルベースの画像は.wmf ..ちょうど..よく..ピクセル化されているように見えます)?

乾杯と感謝、-J

4

2 に答える 2

0

問題は、.NETがGDI +であるのに対し、WMF/EMFはGDIであるということです。GDI +はGDIと互換性がなく、APIと機能が完全に異なることを知っておくことが重要です。したがって、GDIメタファイルの一部の操作は期待どおりに動作しません。透過的なビットマップだけでなく、メタファイルなどでのワールド変換も、Microsoftが宣伝しているように実際には機能しないことがよくあります。

これまでに得た最善の方法は、メタファイルをネイティブGDI +に変換することです。これには、GDIスタックをエミュレートし、テキストの配置などを正しく行うためにいくつかの主要な調整を適用する必要があります。

EMFExplorerをご覧ください。そこで見つかった情報は、大いに役立つ可能性があります。 http://www.codeproject.com/KB/GDI-plus/emfexplorer.aspx

于 2009-04-24T13:38:40.233 に答える
0

さて、メタファイル(.wmf / .emf)を別の形式に変換する最も確実な方法は、出力形式として.pngを使用することです。これは、msdnの説明のどこかで、メタファイルが内部で処理/ png形式に変換されるためです(アルファなどを使用)。 )、たとえばMetafile.Save( "somewher" ...)は、デフォルトでpngImageFormatで出力されます。

したがって、メタファイル入力から非png画像を作成したい場合は、さらに一歩進んで、それをpngとして変換および保存し、そのpngを取得して、次のように再変換すると、最良の結果が得られます。最終フォーマット。ちょっとラメですが、それでも.. wmf自体はとにかく奇妙で、私は(私の個人的な)結論に達しました。それは悪です。;)

-J

于 2009-04-27T20:44:23.167 に答える