如何将文件转换为图像以便在Java中的ImageView中显示?

我试图从文件选择器中选择后立即显示图像文件。 文件选择器仅限于.png和.jpg文件,所选文件存储在File类型的变量中。 要做到这一点,我已经设置了一个ImageView,我希望用这个新文件设置图像唯一的问题是它的类型为File not Image。

怎么能实现这一目标? 代码到目前为止……

public void fileSelection(){ FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("Select Profile Picture"); fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("Image Files", "*.png", "*jpg")); File selectedFile = fileChooser.showOpenDialog(null); File selectedFileInput = selectedFile; if(selectedFile != null) { selectedFileOutput.setText("File selected: " + selectedFile.getName()); previewPicture.setImage(); } else { selectedFileOutput.setText("Please select a profile picture..."); } } 

你可以简单地创建一个图像

 Image image = new Image(selectedFile.toURI().toString()); 

然后将其放在ImageView

 previewPicture.setImage(image); 

其他构造函数可以更好地控制加载图像所需的资源。 如果要强制图像为特定大小,可以在加载时resize,如果用户选择大图像但您只想显示缩小版本,则可以节省内存。 此外,加载大图像可能需要一些时间,因此您不应将其加载到UI线程上。 采用字符串版本的URL的Image构造函数具有在后台线程中自动加载图像的选项。 以下强制宽度和高度都不超过240像素(同时保持原始高宽比),并在后台加载图像(因此不会阻止UI):

 Image image = new Image(selectedFile.toURI().toString(), 240, // requested width 240, // requested height true, // preserve ratio true, // smooth rescaling true // load in background ); 

请参阅其他可用构造函数的文档 。

您创建图像并设置为ImageView ,如下所示

  Image image = new Image(new FileInputStream(selectedFile)); previewPicture.setImage(image);