首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaFX将WritableImage转换为图像

JavaFX将WritableImage转换为图像
EN

Stack Overflow用户
提问于 2013-12-19 16:38:18
回答 2查看 13.2K关注 0票数 6

我正在做一些应用程序,这使LineChart的屏幕截图,并将其保存到的pdf文件。因此,我不知道如何顺利地将WritableImage (JavaFX 2.2)转换为Image (iText lib)。

我的临时解决方案是:

要制作快照,然后从snapshot

  • write
  1. WritableImage to a png file
  2. iText image
  3. iText object Image

我想做一些更改:我不想将png文件写入光盘,我只想将快照写入pdf文件。

我的临时解决方案是:

代码语言:javascript
复制
 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);        
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-20 00:24:01

使用:

代码语言:javascript
复制
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() );
票数 9
EN

Stack Overflow用户

发布于 2016-02-04 18:33:07

我的任务是从画布复制图形,它将复制到WritableImage,然后从WritableImage获取图像(对我来说,它是复制到剪贴板)。这张图片你可以随心所欲地处理。

代码语言:javascript
复制
        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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20676858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档