Печать файла PPM - Неправильные пробелы - PullRequest
0 голосов
/ 30 ноября 2018

Мне нужно напечатать изображение в ppm, но вывод не организован так, как должно быть, мой код:

public static int[][][] read(String filename) {
        StdIn.setInput(filename);
        StdIn.readLine();
        int imgW = StdIn.readInt ();
        int imgH = StdIn.readInt ();
        int[][][] data = new int[imgH][imgW][3];
        for (int i = 0; i < data.length; i++) {
            for (int j = 0; j < data[i].length; j++) {
                for (int k = 0; k < data[i][j].length; k++) {
                    data[i][j][k] = StdIn.readInt();
                }
            }
        }
        return data;
    }

Мой вывод:

255 0 0 0 100 0 0 0 0 0 255 0<br> 255 0 0 0 0 255 175 0 0 0 0 0<br> 0 0 0 0 0 0 0 0 15 175 0 0<br> 0 255 0 255 0 0 0 0 0 0 255 255 правильный вывод: (в основном то же самое, что матрица)

    0   0    0   100    0    0  0   0   0  255     0   255
    0   0    0     0  255  175  0   0   0    0     0     0
    0   0    0     0    0    0  0  15 175    0     0     0
  255   0  255     0    0    0  0   0   0  255   255   255

1 Ответ

0 голосов
/ 08 декабря 2018

Ppm-файлы также перечисляют максимальное значение, отображаемое в файле, которое равно 255 в начале вашего вывода.

Вы должны добавить дополнительный StdIn.readInt ();перед вашей петлей.

...