我正在做一些应用程序,这使LineChart
的屏幕截图,并将其保存到的pdf文件。因此,我不知道如何顺利地将WritableImage
(JavaFX 2.2)转换为Image
(iText lib)。
我的临时解决方案是:
要制作快照,然后从snapshot
WritableImage
to a png fileImage
我想做一些更改:我不想将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);
发布于 2013-12-20 00:24:01
使用:
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() );
发布于 2016-02-04 18:33:07
我的任务是从画布复制图形,它将复制到WritableImage,然后从WritableImage获取图像(对我来说,它是复制到剪贴板)。这张图片你可以随心所欲地处理。
WritableImage wi = new WritableImage((int)gc.getCanvas().getWidth(),
(int)gc.getCanvas().getHeight());
gc.getCanvas().snapshot(null, wi); //Coping all that now in Canvas
//gc is GraphicContext object from Canvas, it has drawing functions
BufferedImage bi =SwingFXUtils.fromFXImage((Image)wi, null);
SwingFXUtils.toFXImage(bi, (WritableImage)image);
https://stackoverflow.com/questions/20676858
复制相似问题