JavaFX: получить изображение из FileChooser и сохранить его в байтах [] - PullRequest
1 голос
/ 02 мая 2020

Я хочу выбрать изображение с помощью FileChooser, а затем сохранить выбранное изображение в переменной byte [], я открываю диалоговое окно

FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Resource File");
fileChooser.showOpenDialog(new Stage());

Теперь, как я могу получить файл изображения из FileChooser и сохранить его в переменной byte []?

1 Ответ

5 голосов
/ 02 мая 2020

Вы можете использовать Files.readAllBytes(Path path):

FileChooser fileChooser = new FileChooser();
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("PNG", "*.png"));
File pngImage = fileChooser.showOpenDialog(window);
if (pngImage != null) {
    try {
        byte[] imageBytes = Files.readAllBytes(pngImage.toPath());
    } catch (IOException e) {
        System.err.println("File couldn't be read to byte[].");
    }
}

Альтернатива: IOUtils:

byte[] bytes = IOUtils.toByteArray(new FileInputStream(pngImage));
...