我问是否有一个简单的方法,因为有一个谷歌问题报告说使用 decodeByteArray 是不可能的。但是该报告起源于 2008 年,我希望那里没有发布解决方案。问题报告中列出的方法是自己解码格式,但我宁愿不必将其放入并减慢程序的速度。任何帮助将不胜感激。
问问题
4773 次
2 回答
8
我假设您的字节数组来自相机预览?如果是这样,您必须对其进行解码,但是使用 2.2 现在很容易。
从字节数组创建一个 YUV 图像,因为数据只会在ImageFormat.NV21( int code 17)
img = new YuvImage(imgData, ImageFormat.NV21, width, height, null);
创建一个与图像大小相同的矩形。
创建一个ByteArrayOutputStream
并将其、矩形和压缩值传递给compressToJpeg()
.
然后你可以使用
Bitmap mBitmap = BitmapFactory.decodeByteArray(outputStream.toByteArry(),0,outputStream.size());
我在回调中的每一帧都使用它,它工作正常。希望这可以帮助。
于 2010-12-06T14:13:17.070 回答
2
最简单的方法是通过以下方式创建 BufferedImage:
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0. data.length);
data 是字节数组。
于 2010-07-23T19:07:04.940 回答