Я проверил несколько примеров того, как конвертировать byte[]
в BufferedImage
, но я не могу заставить его работать. Преобразовать изображение в массив байтов с:Преобразование ImageByteArray в BufferedImage
BufferedImage b = null, c=null;
try {
b = ImageIO.read(Main.class.getResource("res/lvl/Medieval.png"));
} catch (IOException e) {
e.printStackTrace();
}
byte[] imageByteArray = ((DataBufferByte) b.getRaster().getDataBuffer()).getData();
Тогда я пытаюсь преобразовать его обратно с:
ByteArrayInputStream bais = new ByteArrayInputStream(imageByteArray);
try {
c = ImageIO.read(bais);
} catch (IOException e) {
e.printStackTrace();
}
c
еще null
после этого. Что я делаю не так?
Я думаю, что проблема есть с письмом. – Azad
Хм .. Я думаю, что ваши намерения здесь немного неясны ... Вы хотите делать манипуляции с необработанными пиксельными данными? Тогда вам не нужно создавать новое изображение из данных, изменения будут отражены на изображении. Или вы просто хотите сделать копию изображения? – haraldK
Если вы просто хотите скопировать изображение, есть более простые способы. Кроме того, ваше предположение, что изображение использует 'DataBufferByte', конечно, не будет правильным для всех изображений. – haraldK