問題:
Enhanced Metafile Fromat Plus Extension EMF+のイメージがあります。このファイルをJavaでPNG画像ファイルに変換する必要があります。
Java で問題を解決しようとします:
Apache Batik
はEMF+形式をサポートしていません(Batik はWMF形式のみをサポートしています)。FreeHEP
EMF+もサポートしていません。EMFをSVGに変換してからSVGをPNGに変換できます。私はそれが役立つことを望みました:EMF2SVG.main( new String[] {inputMetaFileName,ontputSvgFileName});
このステートメントはEMFをSVGに変換する必要がありますが、例外があります。
org.freehep.graphicsio.exportchooser.AbstractExportFileType.getGraphics(AbstractExportFileType.java:261) の java.lang.NullPointerException org.freehep.graphicsio.exportchooser.AbstractExportFileType.exportToFile(AbstractExportFileType.java:248) org.freehep.graphicsio. org.freehep.graphicsio.emf.EMF2SVG.main(EMF2SVG.java:27) で org.freehep.graphicsio.emf.EMFConverter.export(EMFConverter.java:81) で
ここからコードを使用しました:
try { // read the EMF file EMFRenderer emfRenderer = new EMFRenderer( new EMFInputStream( new ByteArrayInputStream(emfBytes))); EMFPanel emfPanel = new EMFPanel(); emfPanel.setRenderer(emfRenderer); // prepare Graphics2D FileOutputStream svg = new FileOutputStream("svg.svg"); SVGGraphics2D graphics2D = new SVGGraphics2D (svg, emfPanel); // export to SVG graphics2D.startExport(); emfPanel.print(graphics2D); graphics2D.endExport(); svg.flush(); svg.close(); } catch (IOException e) { e.printStackTrace(); }
このコードはSVGファイルを作成しますが、そのファイルには画像がありません。