在做 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格式字节数组

 

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. Android模块化编程——WebView使用之与JavaScript交互
  3. Android(安卓)IllegalArgumentException: Cannot draw recycled
  4. Android(安卓)签名打包出现的错误的解决方法以及代码中获取应用
  5. Android面试-Android项目构建
  6. 自定义toast你需要的都在这里,单例模式,自定义布局,完全自定义,
  7. camera学习---HAL代码流程
  8. Android(安卓)Studio 入门
  9. android TextInputLayout setError 隐藏后不再显示

随机推荐

  1. 安卓基础知识
  2. android 上传文件到 spring 搭建的后台
  3. Android资讯新闻类App(头条、网易等),频道
  4. 判断Edittext是否为几种空方法
  5. getSystemService获得系统服务列表
  6. 如何在Android程序中使用ACRA3
  7. Android(安卓)5.1源码编译环境搭建
  8. Android(安卓)多语言开发
  9. Android(安卓)Your content must have a
  10. Android(安卓)处理横竖屏切换事件