Преобразование изображения в массив байтов без использования SwingFXUtils

В ответе на вопрос getPublicStorage("Pictures") не перечисляет файлы, мы попробовали решение 1 и 2, но в процессе массива байтов кажется, что массив не представляет фактическое изображение.

Used code:
Services.get(PicturesService.class).ifPresent(service -> {
            service.takePhoto(false).ifPresent(image -> {
                imageView.setImage(image);
 
                PixelReader pixelReader = image.getPixelReader();
                int width = (int) image.getWidth();
                int height = (int) image.getHeight();
                byte[] buffer = new byte[width * height * 4];
                pixelReader.getPixels(0, 0, width, height, PixelFormat.getByteBgraInstance(), buffer, 0, width * 4);
 
                //Test
                ByteArrayInputStream in = new ByteArrayInputStream(buffer);
                Image image2 = new Image(in);
 
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
 
                imageView.setImage(image2);
                //Test
 
                proceedImage(buffer);
            });
        });
 
private void proceedImage(byte[] arrayImage) {
        this.arrayImage = arrayImage;
 
        enableZoom(true);
 
        apply = true;
    }

Exception:
W/System.err(15096): com.sun.javafx.iio.ImageStorageException: No loader for image data
W/System.err(15096):    at com.sun.javafx.iio.ImageStorage.loadAll(ImageStorage.java:276)
W/System.err(15096):    at com.sun.javafx.tk.quantum.PrismImageLoader2.loadAll(PrismImageLoader2.java:142)
W/System.err(15096):    at com.sun.javafx.tk.quantum.PrismImageLoader2.<init>(PrismImageLoader2.java:77)
W/System.err(15096):    at com.sun.javafx.tk.quantum.QuantumToolkit.loadImage(QuantumToolkit.java:740)
W/System.err(15096):    at javafx.scene.image.Image.loadImage(Image.java:1073)
W/System.err(15096):    at javafx.scene.image.Image.initialize(Image.java:804)
W/System.err(15096):    at javafx.scene.image.Image.<init>(Image.java:707)
W/System.err(15096):    at org.openjanela.dialog.ImageViewDialog.lambda$null$5(ImageViewDialog.java:260)

Любая идея по исправлению \ настройке \ обходному пути будет высоко оценена.


person Wilbert Marcia    schedule 29.04.2017    source источник
comment
Опубликуйте, что вы пробовали, чтобы это можно было воспроизвести, и что у вас не работает. Вы получаете изображение, даже если оно не то же самое?   -  person José Pereda    schedule 29.04.2017
comment
Здравствуйте, Хосе, код, который вы использовали, был ссылка Попытка сделать блок кода между // текстом в ImageView белым т.к. выдается исключение ссылка ImageViewDialog.java:260 -> Image image2 = new Image(in); Спасибо за внимание   -  person Wilbert Marcia    schedule 29.04.2017
comment
Вы должны отредактировать вопрос и добавить в него соответствующий код и исключения. В любом случае, обратите внимание, что вы не можете создать Image из необработанных пикселей. Если вы просто хотите проверить это, используйте PixelWriter, как я показал в своем ответе.   -  person José Pereda    schedule 30.04.2017
comment
Решение для JavaFx – ›здесь. Просто прокрутите вниз.   -  person Sedrick    schedule 30.04.2017
comment
Спасибо Хосе за ваши комментарии   -  person Wilbert Marcia    schedule 03.05.2017