如何在java中编写和读取pgm p5文件

时间:2015-06-26 12:15:55

标签: java pgm

我想阅读pgm文件。我将图像内容保存在字节数组中。当我访问像素时,我看到一些值是负数。所以,我在每个字节都应用了“& 0xFF”。我希望它没问题,但是当我写入文件时,它与原始图像不同。

我如何读写pgm p5文件?

int i = byteArray[index] & 0xFF; //reading
writer.write((char)(i)); //BufferedWriter    

1 个答案:

答案 0 :(得分:1)

请记住,P5格式是二进制。您正在使用Writer并将值转换为char。这适用于文本,但不适用于二进制数据。

相反,请使用OutputStream并将i中的值直接写入流。

int i = byteArray[index] & 0xFF; // Reading
stream.write(i); // OutputStream 

PS:如果你不想自己实施PGM格式,我已经创建了一个你可以使用的ImageIO plugin for the NetPBM formats (PNM)。它是开源的(BSD许可证)。