У меня очень мало опыта работы с 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