2

私は、512x512グレースケール画像のピクセル値を含む1D配列ピクセルを持っています。pngファイルに書きたいです。次のコードを書きましたが、空白の画像が作成されるだけです。

    public void write(int width ,int height, int[] pixel) {

       try {
// retrieve image
BufferedImage writeImage = new BufferedImage(512,512,BufferedImage.TYPE_BYTE_GRAY);
File outputfile = new File("saved.png");
WritableRaster raster = (WritableRaster) writeImage.getData();
raster.setPixels(0,0,width,height,pixel);

ImageIO.write(writeImage, "png", outputfile);

} catch (IOException e) {

}
4

1 に答える 1

1

返される Raster は、画像が変更された場合に更新されない画像データのコピーです。

新しい Raster オブジェクトをイメージに戻してみてください。

WritableRaster raster = (WritableRaster)writeImage.getData();
raster.setPixels(0, 0, width, height, pixel);
writeImage.setData(raster);
于 2013-03-05T21:19:26.853 に答える