我正在做一些应用程序,它制作了LineChart
的屏幕截图并将其保存到 pdf 文件中。因此,我不知道将WritableImage
(JavaFX 2.2)转换为Image
(iText lib)的简便方法。
我的临时解决方案是:
WritableImage
Image
我想做一些更改:我不想将
png
文件写入光盘,我只想将快照写入pdf文件。我的临时解决方案是:
WritableImage wim = new WritableImage((int) lineChart.getWidth(),(int) lineChart.getHeight());
Scene scena = primaryStage.getScene();
scena.snapshot(wim);
File fileA = new File("C://Graphs/chart.png");
try {
ImageIO.write(SwingFXUtils.fromFXImage(wim, null), "png", fileA);
}
catch (Exception s) {
}
pdfDocument.add(preface3);
com.itextpdf.text.Image graph =com.itextpdf.text.Image.getInstance("C://Graphs/chart.png");
pdfDocument.add((com.itextpdf.text.Element) graph);
最佳答案
用:
ByteArrayOutputStream byteOutput = new ByteArrayOutputStream();
ImageIO.write( SwingFXUtils.fromFXImage( wim, null ), "png", byteOutput );
com.itextpdf.text.Image graph;
graph = com.itextpdf.text.Image.getInstance( byteOutput.toByteArray() );
关于image - JavaFX将WritableImage转换为Image,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20676858/