fileInputStreamを使用して画像を読み込んで書き出し、別の画像を生成しようとしています。ピクセルを読み込んだ後、ピクセルを変更して左右の反転イメージを取得したい。しかし、今ではイメージを読み込んで直接書き出すだけですが、何か問題があります。ウルトラエディットを使用した後、ここに私は最初の4バイトから得るものです:
元の画像:42 4D 7A 95
新しいイメージ:42 4D 7A 3F
そのMSBが1であるすべてのバイトが変更されているようです〜3F。私は、Javaのすべてのデータ型が署名されていることを知っているし、私は既にしようとしているすべてのバイトに0xff。JavaでFileInputStreamを使用して画像を読み取る
public static void imageOut() {
try {
FileInputStream in = new FileInputStream(new File(getPath()));
int[] temp = new int[fSize];
int i = 0;
while (in.available() > 0) {
temp[i] = in.read();
i++;
}
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(getOutputPath()));
for (int j = 0; j < temp.length; j++) {
out.write(((byte)temp[j]));
}
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
まだ変更はありません。私がImageIOを使用しない理由は、単にbmpピクセルを処理してデコードする方法を知りたいからです。 – qq52184962
imageioはbmpを読み込みますが、自分で扱いたいと思っています。他のフォーマット – gpasch