android - 有没有一种简单的方法可以将相机的onPreviewFrame中的字节数组转换为android中的图片?

标签 android image camera preview

我问是否有一个简单的方法,因为有一个谷歌问题报告说使用 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/

相关文章:

html - FF 中的“object-fit”显示不正确

c# - 有没有办法将 RectTransform 传输到 unity3d 中的相机 ViewPort?

ios - 如何区分抓拍图像相册中选择的图像

android - Xamarin、Android、Firebase : "Defualt FirebaseApp is not initialized error". ..?

android - react native : "Failed to read key from keystore" when trying to generate apk file

android - 隐藏平板电脑系统栏

Android Camera - 应用程序传递了 NULL 表面

java - 将字符串和数字与android中的列表分开

Java 9 hdpi 显示支持 - 多分辨率图像 - Windows 中的命名约定和加载

javascript - 你如何在javascript中自动下载文件?