我正在尝试从DNG RAW图像文件中获取缩略图并在android中显示它。我已成功读取所有必需的标签并获取值以形成图像。但在面对创建位图的问题之前,我还没有使用过图像。 通过阅读原始图像标签,我得到了以下值:
图片宽度= 320
图像高度= 216
压缩= 1(1 =未压缩)
每像素采样数= 3
每个样本位= 8
图片起始偏移= 7044
颜色解释= 2(2 = ARGB_8888)
获取我的代码为的图像数据:
int uBitsPerPixel = samplePerPixel * bitPerSample;
int lengthOfBitmap = imageLength * imageWidth * uBitsPerPixel/8;//size of image data
InputStream fis = new FileInputStream(file);
byte[] img = new byte[lengthOfBitmap];
fis.skip(startOffset);//image data starting position
fis.read(img, 0, lengthOfBitmap);
fis.close();
从上面的代码我得到一个字节arry的未压缩的图像数据。但是我将它转换为位图,将位图变为空。
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
bitmap = BitmapFactory.decodeStream(inputStream, null, bmpFactoryOptions);
那么,我该如何正确创建位图?感谢任何帮助。