Я создаю приложение, которое будет считывать байт/пиксель/данные изображения из изображения .bmp и сохранять его в массиве byte/char/int/etc.
Теперь из этого массива я хочу вычесть 10 (в десятичной форме) из данных, хранящихся в 10-м индексе массива.
Я могу успешно сохранить информацию об изображении в созданном массиве. Но когда я пытаюсь записать информацию о массиве обратно в изображение .bmp, созданное изображение невозможно просмотреть.
Это фрагмент кода, который я пытался сделать.
В этом коде я не вычитаю 10 из 10-го индекса массива.
public class Test1 {
public static void main(String[] args) throws IOException{
File inputFile = new File("d://test.bmp");
FileReader inputStream = new FileReader("d://test.bmp");
FileOutputStream outputStream = new FileOutputStream("d://test1.bmp");
/*
* Create byte array large enough to hold the content of the file.
* Use File.length to determine size of the file in bytes.
*/
char fileContent[] = new char[(int)inputFile.length()];
for(int i = 0; i < (int)inputFile.length(); i++){
fileContent[i] = (char) inputStream.read();
}
for(int i = 0; i < (int)inputFile.length(); i++){
outputStream.write(fileContent[i]);
}
}
}
char[]
? У вас нет текстовых данных. Вместо этого используйтеbyte[]
. - person Jon Skeet   schedule 05.02.2013File
, как вы, кажется, делаете, а вместо этого «данных» самого изображения или звука. В этом случае вы должны прочитать файл вBufferedImage
, манипулировать самим изображением и записать его обратно в файл. 3) Добавьте @JonSkeet (или кого-то еще), чтобы уведомить их о новом комментарии. 4) Код в комментариях не читается. Вместо этого отредактируйте его в вопросе и используйте форматирование кода. - person Andrew Thompson   schedule 05.02.2013