0

pgmファイルを読みたい。画像コンテンツをバイト配列に保持しました。ピクセルにアクセスすると、一部の値が負であることがわかります。そこで、「& 0xFF」を各バイトに適用しました。大丈夫だといいのですが、ファイルに書き込むと元の画像と同じではありません。

pgm p5ファイルを読み書きするにはどうすればよいですか?

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

1 に答える 1

1

P5 形式はバイナリであることに注意してください。a を使用していてWriter、値を にキャストしていますchar。これはテキストには適していますが、バイナリ データには適していません。

代わりに、を使用して値をストリームに直接OutputStream書き込みます。i

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

PS: PGM フォーマットを自分で実装したくない場合は、使用できるNetPBM フォーマット (PNM) 用の ImageIO プラグインを作成しました。オープン ソース (BSD ライセンス) です。

于 2015-07-08T10:58:17.110 に答える