現在、単純なint []配列のグレースケール値は0〜255です。単純なイメージファイルに値を保存します。私は次のようにします:Java:グレースケールのint配列をイメージに保存
// flatten the 2d array
int[] result = Arrays.stream(imgData)
.flatMapToInt(Arrays::stream)
.toArray();
BufferedImage outputImage = new BufferedImage(w, h, BufferedImage.TYPE_BYTE_GRAY);
outputImage.setRGB(0, 0, w, h, result, 0, w);
ImageIO.write(outputImage, INPUT_FILETYPE, new File(getOutputFileSystemString()));
これは実際にはうまくいきますが、画像は暗く暗いです。
ここにIrfanViewの画像があります。あなたは実際に詳細を見ることができます、それはすべて黒ではありませんが、それは非常に暗いです。私は255に左上隅にすべてのprixelを設定し、それはまだ非常に暗いですが、少なくとも私の意見では白であるべき輪郭を見ることができます:
誰もがなぜ知っていますか?私はあなたがWritableRaster
を使用して、より良い運を持っていると信じ
imgDataの種類は何ですか? 2次元int []? – ManoDestra
@ManoDestraはい。これは0から255のint値を含み、ちょうどint [1024] [1024]のサイズです。 – luuksen
あなたは 'result'という配列を作成しますが、関数呼び出しでは' source'を使用します –