我对 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。
尺寸为 350 像素 X 350 像素