如何使用Mac上的JavaFX将图像保存到文件系统?

如何使用Mac上的JavaFX将图像保存到文件系统?,java,image,save,javafx,javafx-2,Java,Image,Save,Javafx,Javafx 2,我正试图将一个图像保存到我的文件系统中,如javafx image ops页面上所述:但我一直收到以下异常错误: java[80783:707] [JRSAppKitAWT markAppIsDaemon]: Process manager already initialized: can't fully enable headless mode. 这个问题有点帮助,但我仍然坚持保存图像 有没有办法保存图像 我现在就是这样做的: File outFileImage = new File(ima

我正试图将一个图像保存到我的文件系统中,如javafx image ops页面上所述:但我一直收到以下异常错误:

java[80783:707] [JRSAppKitAWT markAppIsDaemon]: Process manager already initialized: can't fully enable headless mode.
这个问题有点帮助,但我仍然坚持保存图像

有没有办法保存图像

我现在就是这样做的:

File outFileImage = new File(imageUrl);

Toolkit tk = java.awt.Toolkit.getDefaultToolkit().getDefaultToolkit();
try {
    ImageIO.write(SwingFXUtils.fromFXImage(image, null), ".png", outFileImage);
} catch (Exception e) {
    log.log(Level.WARNING, "Image not saved to disk", e);
}

编辑

我尝试运行Java 8以查看问题是否会得到解决,但我不断收到JavaFXML错误:

javafx.fxml.LoadException: Root hasn't been set. Use method setRoot() before load.
/Users/jonathan/Projects/Dominion/target/classes/dominion/application/controller/main_overview_tab.fxml:13

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2613)
at javafx.fxml.FXMLLoader.access$100(FXMLLoader.java:104)
at javafx.fxml.FXMLLoader$RootElement.constructValue(FXMLLoader.java:1320)
at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:740)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2723)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
at dominion.application.controller.MainOverviewTab.initView(MainOverviewTab.java:64)

编辑

我已将此JavaFXML加载问题发布到此处发现的另一个问题中:

在与您粘贴到问题中的警告消息相关的评论中,开发人员注意到:

这确实需要在JDK中进行修复。我们没有计划将这些特定的更改移植到7uX版本,因为它们有一定的风险,我们不想破坏7uX分支的稳定。按照史蒂夫的建议,请移到8

好了,除了FX强制AWT在无头模式下运行之外,没有任何其他改变或中断。因此,您可能认为打印到控制台的警告是缺少更改的唯一副作用。只要不需要在应用程序中使用AWT/Swing,就应该是安全的

因此,也许你最好的做法是尝试看看你是否还有任何问题

根据有关setRoot()的更新问题进行更新。


您在Java 8的哪个版本中遇到FXML错误?根据这一点,JavaFX8B121中可能已经修复了这个特定的“根尚未设置”FXML加载错误。可能会看到。FXML加载问题与将映像保存到文件系统的原始问题无关,通常不相关的问题最好作为新问题提问。

尽管有错误消息,您的映像是否正确写入,还是您只是担心消息?否,映像未保存到磁盘