我问是否有一个简单的方法,因为有一个谷歌问题报告说使用 decodeByteArray 是不可能的。但该报告起源于 2008 年,我希望那里没有发布解决方案。问题报告中列出的方法是自己解码格式,但我宁愿不必将其放入并减慢程序速度。任何帮助都将不胜感激。
最佳答案
我假设您的字节数组来自相机预览?如果是这样,您必须对其进行解码,但现在使用 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());
我将它用于回调中的每一帧并且它工作正常。希望这会有所帮助。
关于android - 有没有一种简单的方法可以将相机的onPreviewFrame中的字节数组转换为android中的图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3321504/