I have an instantiated File
object. I know it contains a picture format. I don\'t know where on the system the file is placed, other than the methods of F
File
provides a method to retrieve the URL for the file and the Image constructor expects a URL String
.
Image imageForFile = new Image(file.toURI().toURL().toExternalForm());
Combining the javax.imageio.ImageIO
class (ref) and the javafx.embed.swing.SwingFXUtils
(ref) can convert an "input" (i.e.: stream, file, URL) to a JavaFX image. Sample code (for File
):
public static Image readImage(File file) {
try {
BufferedImage bimg = ImageIO.read(file);
return SwingFXUtils.toFXImage(bimg, null);
}
catch( IOException e ) {
// do something, probably throw some kind of RuntimeException
}
}