Я читаю файл с массивом байтов. Я скачал библиотеку Apache Commons IO использование метода FileUtils' readFileToByteArrayJava Converting ByteArray в изображение
File file = new File("/home/username/array.txt");
FileUtils fu = new FileUtils();
byte[] array = FileUtils.readFileToByteArray(file);
Я хочу, чтобы преобразовать массив байтов в изображение.
ByteArrayInputStream bis = new ByteArrayInputStream(array);
Iterator<?> readers = ImageIO.getImageReadersByFormatName("gif");
ImageReader reader = (ImageReader) readers.next();
Object source = bis;
ImageInputStream iis = ImageIO.createImageInputStream(source);
reader.setInput(iis, true);
ImageReadParam param = reader.getDefaultReadParam();
Image image = reader.read(0, param); // this line is the problem
Когда код переходит к упомянутой линии, он генерирует исключение, говоря
javax.imageio.IIOException: Unexpected block type 128!
Я не знаю, что означает, что это исключение, поэтому я не знаю, как это исправить. Любая дополнительная информация, которая может быть полезной, должна быть запрошена.
Благодаря
Вы можете сделать все вышеперечисленное с помощью одной строки кода: «Image image = ImageIO.read (file);» Это устранит любые проблемы с байт-массивами и удалит вашу зависимость от внешней библиотеки. – VGR