我正在做一些应用程序,它可以制作LineChart
的屏幕截图并将其保存到pdf文件中。所以我不知道将 WritableImage
(JavaFX 2.2) 转换为 Image
(iText lib) 的顺利方法。
我的临时解决方案是:
- 制作快照,然后
- 从快照中获取
WritableImage
- 将图像写入 png 文件
- 打开图像并创建iText对象
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/