|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
babich : 4 Новичок
|
Дек 20, 2011 15:11 |
|
|
Добрый день.
Делаю стеганографию, аддитивный алгоритм
Я считываю изображение, потом запихиваю в них некоторую информацию, и пытаюсь записать изображение с вшитой информацией
| Код: |
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); |
Буду благодарна за помощь |
|
|
|
 |
Skipy : 4801 Я тут живу! Откуда: Москва, Россия
|
Дек 20, 2011 15:27 |
|
|
А Вы уверены, что читаете из правильного массива? Он ведь должен соответствовать определенному графическому формату - только тогда его ImageIO.read правильно прочитает. А если он УЖЕ соответствует формату - смысл пытаться его записать как png? Запишите этот массив байтов.
В общем, мое предположение - Вы неправильно формируете данные, в результате BI==null.
Как Вы модифицируете массив данных? Откуда его берете? Что в нем? _________________ С уважением,
Евгений aka Skipy
www.skipy.ru
P.S. Я НЕ решаю задачи ЗА других! |
|
|
|
 |
|
|
|