|
分類:[VB.NET/VB2005 以降]
VB2019 .Net Framework 4.8
Wordファイルに埋め込まれている拡張メタファイル形式の画像を ビットマップに変換するツールを作成しています。
最近困ったことがありました。 それは、画像に網掛け(ハーフトーン?)のような模様が含まれているものがあるのですが、 例えば600dpiの高解像度換算でビットマップ化すると この網掛け模様が細かくなりすぎてしまい(細かすぎてグレーの背景に見える)、 元のWord上の画像と見え方が変わってしまうということです。
この画像に設定されている解像度は96dpiでしたので、 System.Drawing.Imaging.Metafileのインスタンスを作成し、 これをpng形式の画像ファイルに保存すると、 網掛け模様は元のWord上の表示と同じようになりましたが、 今度は画像上の文字が異様に太くなっていました。 真っ白なBitmapを用意し、そこにGraphicsのDrawImageでMetafileを描画しても同じでした。
ちなみに、 ・Word上の対象画像をクリップボード経由でコピーし、これを画像化 ・PictureBoxのImageにMetafileを設定し、そのPictureBoxのDrawToBitmapで表示内容を画像化
の方法だと、対象画像の文字は太くならず、Word上の表示と同じようになっていました。
クリップボード経由だと何か問題がありそうなので、 とりあえず、後者の方法で網掛けを含む画像のビットマップ化をやりましたが、 もっと簡単に、少なくともWord上の表示と同じようにMetafileの画像化を行う方法はないでしょうか?
|