Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > ImageIO.write запись изображения


Автор: Babich77 20.12.2011, 15:13
Добрый день.
Делаю стеганографию, аддитивный алгоритм
Я считываю изображение, потом запихиваю в них некоторую информацию, и пытаюсь записать изображение с вшитой информацией
Код

public void makeImage(byte[] data) throws IOException{
    BufferedImage bI = ImageIO.read(new ByteArrayInputStream(data));
    File e = new File ("enc.png");
    ImageIO.write((RenderedImage)bI, "png", e);
}


byte[] data - массив пикселей с вшитой информацией, сделанный из исходного массива пикселей изображения, которые были получены вот таким способом:
Код

WritableRaster wr = image.getRaster();
    DataBufferByte buffer = (DataBufferByte)wr.getDataBuffer();
    pixels = buffer.getData();


На эту строку выскакивает исключение: java.lang.IllegalArgumentException: im == null!

Код
ImageIO.write((RenderedImage)bI, "png", e);


Буду благодарна за помощь


Автор: jk1 20.12.2011, 17:48
Вероятно всему виной некорректное изображение. Если ImageIO не может переварить изображение, которое ему дают на вход, то код
Код

ImageIO.read(new ByteArrayInputStream(data))

вернет null, ну и дальше собственно Ваше NPE.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)