Windowsのベクター画像規格WMF、拡張版がEMF
WMF(Windows Metafile)は、1990年にマイクロソフト社がWindowsのべクター画像規格として公開しました。その後、1993年に拡張規格としてEMF(Enhanced Metafile)を追加で公開しました。こうした経緯から、いまでもWindows環境のベクター画像としてEMF/WMFは使われています。しかしJava開発環境や、LinuxやmacOSなどのOS環境とは距離があるのも事実です。
でも大丈夫です。JavaでEMF/WMFを読みこむ必要が出たら、Java開発ツール(SDK)のJDeli(ジェイデリ)のことを思い出してください。JDeliは、EMFとWMFを読み込んだり、他の画像フォーマットに変換できます。
JDeliは、SVG、WebPやHEICといった最新の画像規格を含む14種類の画像フォーマットに対応しています。ImageIOの高性能版という位置付けで開発されているので、ImageIOより高機能、高効率です。ImageIOのコードを容易に置き換えられるよう、ほぼ互換のコード記述ができます(下記)。
WMF/EMFを扱うJava開発の機会は少ないかもしれませんが、JPG/PNGなどの定番の画像フォーマット、そしてSVGやWebPやHEICを扱うことは多いでしょう。つまり、日常的に使うJava画像ツールとしてのコスパの良さがJDeliにはあります。
● JDeli で EMF を読み込むサンプルコード
BufferedImage image = JDeli.read(emfImageFile);
または
EmfDecoder decoder = new EmfDecoder();
BufferedImage image = decoder.read(emfData);
●JDeli で WMF を読み込むサンプルコード
BufferedImage image = JDeli.read(wmfImageFile);
または
WmfDecoder decoder = new WmfDecoder();
BufferedImage image = decoder.read(wmfData);
EMF/WMF から SVG へ、ベクター規格のまま変換も
JDeli は、EMF/WMF ファイルを JPG や PNG といったラスター画像(ビットマップ画像)に変換するだけではありません。JDeli は、主流になったベクター画像規格の SVG(Scalable Vector Graphics)に変換することもできます。EMF/WMF を SVG にベクター画像のまま変換すれば、ベクター画像のメリットを生かしつつ使い勝手をよくできます。
●JDeli で EMF を SVG に変換するサンプルコード
//EMFファイルのFile(またはInputStream)オブジェクトの作成
File emfFile = new File("/path/to/emfFile.emf"));
//変換されたSVG出力用のFile(またはOutputStream)オブジェクトを作成
File svgFile = new File("/path/to/svgFile.svg"));
//File(またはOutputStream)オブジェクトを静的メソッドに渡す
EmfDecoder.toSVG(emfFile,svgFile);
●JDeliでWMFをSVGに変換するサンプルコード
File wmfFile = new File("/path/to/wmfFile.wmf"));
File svgFile = new File("/path/to/svgFile.svg"));
WmfDecoder.toSVG(wmfFile,svgFile);
取り扱い製品について
PDF規格は複雑なうえに、過去からの積み重ねで非常にわかりにくくなっています。PDF連携ソフトウェアの開発では、英国IDRsolutions 社のPDF関連製品(変換ツール、ライブラリ、ソフトウェア部品など)を、ぜひご検討ください。
IDRsolutions はPDF関連ツールを20年以上に渡って開発・提供し続けています。PDF分野の老舗企業として、世界中の企業や公的機関にご活用いただいています。
日本では株式会社インターワークがIDRsolutions社の日本総代理店として取り扱っていますので、お気軽にご相談ください。
VIEWING PRODUCTS
PDFをHTML5やSVGに変換
PDFのフォームをHTML5に変換
SDK PRODUCTS
PDFファイルの表示、変換、抽出
多くの画像ファイル形式を読み書き、変換、操作、処理