1、SurfaceView不显示画面,可能是xml设置了背景色,这回遮挡视频画面。
2、如果想保存方形视频,而又不是通过缩放,可以在预览的适合遮挡不需要的画面。录制的适合剪裁一下。
3、因为Camera数据是按横屏给,竖屏的适合,画面会选择90°,StartPreview前设置:mCamera.setDisplayOrientation(90);
4、网上找的几个NV12剪裁及选择代码:
private byte[] rotateYUV420Degree90(byte[] data, int imageWidth, int imageHeight)
{final byte [] yuv = new byte[previewWidth*previewHeight*3/2];// Rotate the Y lumaint i = 0;for(int x = 0;x < imageWidth;x++){for(int y = imageHeight-1;y >= 0;y--){yuv[i] = data[y*imageWidth+x];i++;}}// Rotate the U and V color componentsi = imageWidth*imageHeight*3/2-1;for(int x = imageWidth-1;x > 0;x=x-2){for(int y = 0;y < imageHeight/2;y++){yuv[i] = data[(imageWidth*imageHeight)+(y*imageWidth)+x];i--;yuv[i] = data[(imageWidth*imageHeight)+(y*imageWidth)+(x-1)];i--;}}return yuv;
}private byte[] rotateYUV420Degree180(byte[] data, int imageWidth, int imageHeight)
{byte [] yuv = new byte[imageWidth*imageHeight*3/2];int i = 0;int count = 0;for (i = imageWidth * imageHeight - 1; i >= 0; i--) {yuv[count] = data[i];count++;}i = imageWidth * imageHeight * 3 / 2 - 1;for (i = imageWidth * imageHeight * 3 / 2 - 1; i >= imageWidth* imageHeight; i -= 2) {yuv[count++] = data[i - 1];yuv[count++] = data[i];}return yuv;
}private byte[] rotateYUV420Degree270(byte[] data, int imageWidth, int imageHeight)
{final byte [] yuv = new byte[previewWidth*previewHeight*3/2];int wh = 0;int uvHeight = 0;if(imageWidth != 0 || imageHeight != 0){wh = imageWidth * imageHeight;uvHeight = imageHeight >> 1;//uvHeight = height / 2}//旋转Yint k = 0;for(int i = 0; i < imageWidth; i++) {int nPos = 0;for(int j = 0; j < imageHeight; j++) {yuv[k] = data[nPos + i];k++;nPos += imageWidth;}}for(int i = 0; i < imageWidth; i+=2){int nPos = wh;for(int j = 0; j < uvHeight; j++) {yuv[k] = data[nPos + i];yuv[k + 1] = data[nPos + i + 1];k += 2;nPos += imageWidth;}}
}
public byte[] cropYUV420(byte[] data,int imageW,int imageH,int newImageH){int cropH;int i,j,count,tmp;byte[] yuv = new byte[imageW*newImageH*3/2];cropH = (imageH - newImageH)/2;count = 0;for(j=cropH;j<cropH+newImageH;j++){for(i=0;i<imageW;i++){yuv[count++] = data[j*imageW+i];}}//Cr Cbtmp = imageH+cropH/2;for(j=tmp;j<tmp + newImageH/2;j++){for(i=0;i<imageW;i++){yuv[count++] = data[j*imageW+i];}}return yuv;
}

android Camera相关问题及NV12剪裁旋转相关推荐

  1. Android camera 相关术语(四) 之  变焦和对焦的区别VCM 闭环和开环在硬件上有什么区别

    Android camera 相关术语(四) 之  变焦和对焦的区别VCM 闭环和开环在硬件上有什么区别 VCM 闭环马达(即close loop)与开环马达(即open loop)一般有两个硬件上的 ...

  2. android crop 大图,com.android.camera.action.CROP 实现图片剪裁

    APP 中选取图片之后,有时候需要进行剪裁,比如头像. 以下是启动代码. 在我的项目中,传的是 filePath,所以我转了一下,但实际上从相册选择图片后,用 data.getData() 就可获得 ...

  3. Android Camera了解一下

    首发于公众号 Android Camera了解一下 Camera 演进简介 最近在项目中遇到 Camera相关的场景,之前对这块不是很了解,趁机补了一下盲区.Android Camera 相关也是生态 ...

  4. android camera移动方向_Android Camera开发系列:调整Camera预览方向

    有时候我们想根据自己的需要调整下Camera的预览方向,那么是调用哪个API可以达到我们的目的呢? 我们看下下图拍的几张小可爱的照片,分别是正常方向.旋转180度.90度拍的照片. ​ 正常方向 旋转 ...

  5. Android Camera App

    主要从APP层梳理Android Camera 相关的内容,暂时以记账的形式记录. stream imageReader surface BufferQueue 参考文档: BufferQueue 学 ...

  6. android 骁龙图库解析,Android Camera开发系列:高通平台,How To Expose Aux Camera ?

    一.写在前面 本文主要介绍在高通平台上,当设备枚举到的Camera设备数超过2个的时候(我们正常的设备是前后摄2个),上层应用通过CameraManager的getCameraIdList()接口,如 ...

  7. android camera之nv21旋转

    android camera之nv21旋转 这周做的一个android的camera开发,需要获取到视频帧数据,并且需要是nv21格式的byte数组,并且视频帧的图像需要是正方向的.和android相 ...

  8. Android camera onPreviewFrame 图片旋转问题

     Android开发中调用到摄像头camera及截图.通过测试发现,调用前置摄像头的预览图和截图.调用后置摄像头的预览图和截图,参数是不一样的. 调用前置摄像头: camera = Camera. ...

  9. Android编程中调用Camera时预览画面有旋转问题的解决方法

    本文实例讲述了Android编程中调用Camera时预览画面有旋转问题的解决方法.分享给大家供大家参考,具体如下: 在调用Camera写应用的时候,前后摄像头的情况有时候是不一样的.有时候,明明后摄像 ...

最新文章

  1. insightface face_preprocess
  2. LeetCode Maximum XOR of Two Numbers in an Array(贪心、字典树)
  3. java3d创建立方体_Opengl创建几何实体——四棱锥和立方体
  4. workbook加载文件路径_【Python】文件重命名(按照Excel清单)
  5. 《零基础》MySQL 数据类型(八)
  6. windows 远程 登录无操作30分钟后自动退出登录_Mac电脑如何远程Windows10
  7. 腾讯翻译君在线翻译怎么翻译整个文件_很实用的PDF文档在线翻译工具,整篇PDF翻译一键搞定...
  8. matlab怎么对语音信号处理,语音信号处理MATLAB程序
  9. CSR8615蓝牙芯片功能调试入门笔记------ 下
  10. Antd DatePicker之旬查询(本月上旬、本月中旬、本月下旬)
  11. 代理服务器没有响应解决方案
  12. 编译g2o提示错误 error: ‘ScalarBinaryOpTraits’ is not a class template
  13. tp5子域名index.php,tp5实现绑定子域名,并且根据子域名定义路由规则
  14. Codeforces Round #657 (Div. 2)B. Dubious Cyrpto
  15. 异步FIFO的verilog代码实现(包含将满和将空逻辑)
  16. Chapter3.1.1 python函数小示例
  17. 啊啊啊~~~~~ Ajax
  18. html里用js实现随机抽奖,js实现简单随机抽奖的方法
  19. python爬取今日头条热点新闻事件,Python爬虫实战入门五:获取JS动态内容—爬取今日头条...
  20. 制作Linux版PE系统

热门文章

  1. Windows Server 2008 R2之二从介质安装 AD DS
  2. 开发的一款IDEA电子阅读器功能介绍
  3. 设计师 VR 成型设计知识收集
  4. 寻找 时间轴网页设计灵魂
  5. c++11 多线程编程(三)------ 竞争和互斥锁
  6. 察看无限网络linux,linux 无线网络调试
  7. Python玩转简书钻,简述钻是否对文章权重有影响?结果确实有!
  8. opencv中mean函数耗时_使用OpenCV进行人脸对齐
  9. linux mysql 查看字符集_Linux中查看和设置MySQL数据库字符集 一
  10. 笔记本电脑投屏到电视_电脑怎么投屏到电视?掌握这3个方法就够了