私は Java IO と画像の経験がほとんどなく、バイト配列として保存された航空画像を BufferedImage に変換することに成功していません。
これが私のコードです:
int width = scaledImage.getWidth();
int height = scaledImage.getHeight();
DataBuffer buffer = new DataBufferByte(scaledImage.getImage(), scaledImage.getImage().length, 0);
SampleModel sampleModel = new SinglePixelPackedSampleModel(DataBuffer.TYPE_BYTE, width, height, new int[]{(byte)0xf});
WritableRaster raster = Raster.createWritableRaster(sampleModel, buffer, null);
ColorModel colorModel = imageManager.generateColorModel();
BufferedImage image = new BufferedImage(colorModel, raster, false, null);
このコードのほとんどはhttp://www.exampledepot.com/egs/java.awt.image/Mandelbrot2.htmlから借用しています。
このコードは次の例外をスローします
java.awt.image.RasterFormatException: データ配列が小さすぎます (122499 のはずです)
データ配列の実際の長さは 52341 です。
寸法は 350px X 350px です