2016-05-30 9 views
1

インスタンス化されたFileオブジェクトがあります。私はそれが画像形式を含んでいることを知っている。私に利用できるFileの方法以外に私のシステム上のファイルが置かれている場所を知っていない、getPath(), getAbsolutePath()など絶対パスからJavaFXイメージを作成する方法は?

私の質問は:私は私のFileに絵とJavaFXのImageオブジェクトをインスタンス化することができますか? JavaFXの画像に "入力"(すなわち.:ストリーム、ファイル、URL)に変換することができjavax.imageio.ImageIOクラス(ref)とjavafx.embed.swing.SwingFXUtilsref)を組み合わせる

+1

参照[ 'ImageIO.read()'](https://docs.oracle.com/javase/8/docs/api/javax/imageio/ImageIO.html#read-java.io.File - )、['SwingFXUtils.toFXImage()']](https://docs.oracle.com/javase/8/javafx/api/javafx/embed/swing/SwingFXUtils.html#toFXImage-java.awt.image。 BufferedImage-javafx.scene.image.WritableImage-)。 –

+0

ありがとうございました:)あなたが気にしている場合は、回答を投稿してもよいし、後で自分で解決してもよい。 – user2651804

答えて

6

FileファイルのURLを取得する方法を提供し、the Image constructorはURL Stringを期待しています。

Image imageForFile = new Image(file.toURI().toURL().toExternalForm()); 
+1

再訪すると、私は答えとしてメモリコピーを伴わないので、この解決法を好むでしょう。 –

1

。 (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 
    } 
} 
+1

これは解決策ですが、この場合は不要なメモリコピーが必要になります。ファビアンの答えを見てください。 –

関連する問題