【问题标题】:JavaFX convert WritableImage to ImageJavaFX 将 WritableImage 转换为 Image
【发布时间】:2014-01-07 17:39:44
【问题描述】:

我正在做一些应用程序,它制作LineChart 的屏幕截图并将其保存到 pdf 文件。所以我不知道将WritableImage(JavaFX 2.2)转换为Image(iText lib)的平滑方法。

我的临时解决办法是:

  1. 制作快照,然后
  2. 从快照中获取WritableImage
  3. 将图像写入 png 文件
  4. 打开图片并制作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);        

【问题讨论】:

  • 我必须做同样的事情,我正在做和你一样的事情,因为我暂时找不到更好的解决方案 =/
  • 就像我说的这只是我的临时解决方案,因为我需要这个 si 我可以去下一个任务..

标签: image javafx itext


【解决方案1】:

用途:

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() );

【讨论】:

  • 谢谢你,我想给你一个赞,但我不能因为我没有足够的声誉。
【解决方案2】:

我的任务是从 Canvas 复制绘图,它将复制到 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);

【讨论】:

  • 忘了,"image" 是你的 Image 对象
  • java.lang.ClassCastException: javafx.scene.image.Image 无法转换为 javafx.scene.image.WritableImage
猜你喜欢
  • 2021-09-24
  • 2016-08-18
  • 1970-01-01
  • 2016-10-31
  • 2010-10-28
  • 2019-09-22
  • 2017-02-03
  • 2012-11-16
  • 2011-03-30
相关资源
最近更新 更多