Чтение и запись сырых файлов PGM на Java

Я пытаюсь читать и писать файлы PGM. Работать с ASCII PGM (магическое число = P2) легко, но у меня возникает путаница при работе с необработанными файлами PGM (магическое число P5).

Вот файл PGM, который я пытаюсь прочитать: A.pgm

После Заголовка PGM, когда я пытаюсь прочитать данные Изображения, используя следующий код Java:

FileInputStream inRaw = null;
try {
    inRaw = new FileInputStream("A.pgm");
} catch (FileNotFoundException e) {
    e.printStackTrace();
}
Scanner scan_Raw = new Scanner(inRaw);
//lines to read the PGM Header
System.out.println(scan_Raw.nextLine());
System.out.println(scan_Raw.nextLine());
System.out.println(scan_Raw.nextLine());
System.out.println(scan_Raw.nextLine());
//Code to read the Image Data
while(scan_Raw.hasNext()){
    System.out.println(scan_Raw.next());

Тогда это дает следующий вывод:

�����������������������������������������������������������������������������������������#F�����������������   ����������������}   ����������������; > e���������������� #��������������� 7� ��������������v y�M ��������������4 
`�������������     
������������� A��� ������������p ����U ������������n�����
��������������������������������������������������������������������������������������

Что это за выход? Кроме того, почему я не могу прочитать время с помощью scan_Raw.nextByte(); (исключение несоответствия ввода), потому что, как я понимаю, данные изображения в P5 сохраняются как байты?

0 ответов

Другие вопросы по тегам