Как загрузить изображение PGM с правильным цветовым диапазоном в Java? - PullRequest
1 голос
/ 06 августа 2011

Я делаю работу, в которой мне нужно загрузить изображение PGM на языке программирования Java.

У меня нет проблем с загрузкой его из файла, так как я использую фреймворк Apache Sanselan, и онслишком легко сделать:

BufferedImage image = Sanselan.getBufferedImage(new File("image.pgm"));

Однако, когда я пытаюсь нарисовать его на Swing Canvas, я понимаю, что цветовая гамма распознана неправильно.Проблема заключается в том, что максимальное загружаемое значение цвета всегда составляет 255 (в то время как в файле PGM можно указать другой максимальный цвет).

Например, при загрузке изображения PGM

P2
# Shows the word "FEEP" (example from Netpbm main page on PGM)
24 8
15
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  3  3  3  3  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15 15 15 15  0
0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0 15  0
0  3  3  3  0  0  0  7  7  7  0  0  0 11 11 11  0  0  0 15 15 15 15  0
0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0  0  0
0  3  0  0  0  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15  0  0  0  0
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 14 13 12 11 10 9  8  7

максимальный цвет равен 15, я получаю полное черное изображение, поскольку максимальный цвет принимается равным 255 (поэтому пиксель со значением 15, который был бы белым, если изображение было правильно загружено, в этом случае почти черный).

Я пытался использовать Java Advanced Image I / O Tools, но у меня точно такая же проблема.

Кто-нибудь знает, как ее решить?

Спасибо!

...