Я работал с набором данных Google Quickdraw, но у меня возникли проблемы с обработкой данных. Я работаю в java, я загрузил данные и преобразовал каждый файл в байтовые массивы (например, full_numpy_bitmap_anvil.npy становится байтовым массивом 98965104 байта, примерно 126231 изображение). Я хочу иметь возможность воссоздать эти изображения из массива байтов. Проблема, с которой я столкнулся, заключается в следующем; Я могу разбить массив на соответствующие подмассивы (по 784 байта каждый), но я не могу превратить их обратно в изображения, так как вы не можете записывать случайные байты в изображение обычным способом, например
ByteArrayInputStream bis = new ByteArrayInputStream(data);
BufferedImage bImage2 = ImageIO.read(bis);
ImageIO.write(bImage2, "jpg", new File("output.jpg"))
без сообщения об ошибке
Exception in thread "main" java.lang.IllegalArgumentException: image == null!
Может, мне нужен способ записи отдельных пикселей в новое буферное изображение? Или есть другой способ сделать это?
ПРИМЕЧАНИЕ. Я знаю, что такая обработка будет проще в python, но, как я уже сказал, я работаю в java.