关于android camera2 图像格式的一些问题
16lz
2021-01-25
在做 android camera2 api 相关功能开发时,
遇到的一些问题,
这些无非就是图像保存,图像格式(包括转化,查看等等),图像大小等等..
在预览时,我们一般取ImageFormat.YUV_420_888 这种...
代码 一般类似 于这样:
mImageReader = ImageReader.newInstance(mPreviewSize.getWidth(), mPreviewSize.getHeight(), ImageFormat.YUV_420_888, 2); mImageReader.setOnImageAvailableListener( new OnImageAvailableListenerImpl(), mBackgroundHandler);
代码出处:
掘金 android 上 使用camera2 api 的示例
那要是 我们的 程序, 可能需要 nv21 这样的数据图像格式 ...
那么 该如何处理了 ...
在上面的 代码链接中,事实上 是有转化 代码的...
类似于这样子:
public static void yuv422ToYuv420sp(byte[] y, byte[] u, byte[] v, byte[] nv21, int stride, int height) { System.arraycopy(y, 0, nv21, 0, y.length); // 注意,若length值为 y.length * 3 / 2 会有数组越界的风险,需使用真实数据长度计算 int length = y.length + u.length / 2 + v.length / 2; int uIndex = 0, vIndex = 0; for (int i = stride * height; i < length; i += 2) { nv21[i] = v[vIndex]; nv21[i + 1] = u[uIndex]; vIndex += 2; uIndex += 2; } }
最后 本文验证了 这博客中,类似 转换的代码:
亲测可以用,(效率未测..)
Android:YUV_420_888编码图像转换为I420和NV21格式字节数组
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- Android模块化编程——WebView使用之与JavaScript交互
- Android(安卓)IllegalArgumentException: Cannot draw recycled
- Android(安卓)签名打包出现的错误的解决方法以及代码中获取应用
- Android面试-Android项目构建
- 自定义toast你需要的都在这里,单例模式,自定义布局,完全自定义,
- camera学习---HAL代码流程
- Android(安卓)Studio 入门
- android TextInputLayout setError 隐藏后不再显示