Camera预览时需要对yuv帧做水平翻转处理,直接在onPreviewFrame(byte[] data, Camera camera)里调用Mirror函数,处理完后的图片和预览效果成水平翻转关系。

nv21的镜像算法:

private void Mirror(byte[] src, int w, int h) { //src是原始yuv数组

int i;

int index;

byte temp;

int a, b;

//mirror y

for (i = 0; i < h; i++) {

a = i * w;

b = (i + 1) * w - 1;

while (a < b) {

temp = src[a];

src[a] = src[b];

src[b] = temp;

a++;

b--;

}

}

// mirror u and v

index = w * h;

for (i = 0; i < h / 2; i++) {

a = i * w;

b = (i + 1) * w - 2;

while (a < b) {

temp = src[a + index];

src[a + index] = src[b + index];

src[b + index] = temp;

temp = src[a + index + 1];

src[a + index + 1] = src[b + index + 1];

src[b + index + 1] = temp;

a+=2;

b-=2;

}

}

}

i420的镜像算法:

private void Mirror(byte[] src, int w, int h) { //src是原始yuv数组

int i;

int index;

byte temp;

int a, b;

//mirror y

for (i = 0; i < h; i++) {

a = i * w;

b = (i + 1) * w - 1;

while (a < b) {

temp = src[a];

src[a] = src[b];

src[b] = temp;

a++;

b--;

}

}

//mirror u

index = w * h;//U起始位置

for (i = 0; i < h / 2; i++) {

a = i * w / 2;

b = (i + 1) * w / 2 - 1;

while (a < b) {

temp = src[a + index];

src[a + index] = src[b + index];

src[b + index] = temp;

a++;

b--;

}

}

//mirror v

index = w * h / 4 * 5;//V起始位置

for (i = 0; i < h / 2; i++) {

a = i * w / 2;

b = (i + 1) * w / 2 - 1;

while (a < b) {

temp = src[a + index];

src[a + index] = src[b + index];

src[b + index] = temp;

a++;

b--;

}

}

I420,YV12,NV12,NV21均属于YUV420,以下为四种格式的排列顺序:

I420: YYYYYYYY UUVV =>YUV420P

YV12: YYYYYYYY VVUU =>YUV420P

NV12: YYYYYYYY UVUV =>YUV420SP

NV21: YYYYYYYY VUVU =>YUV420SP

以上这篇android camera yuv帧水平翻转实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

android camera预览翻转,android camera yuv帧水平翻转实例相关推荐

  1. android 图片预览动画,Android图片上传实现预览效果

    首先具体分析一下,实现的功能,其中需求分析是必不可少的,需求.逻辑清除之后,再上手写代码,思路会很清晰. 1.多图上传首先得选择图片(这里项目需求是既可以拍照上传也可以从相册中选择) 2.拍照上传很简 ...

  2. android 平板预览变形,Android SurfaceView预览变形完美解决方法

    这个问题百度上一搜一大把,基本上都是说找到和SurfaceView的比例相近的camera预览尺寸,但是发现预览时候还是差了点意思,具体看下面这个回调就知道是为什么了. @Override publi ...

  3. android摄像头预览功能,android通过camera和surfaceview选择摄像头并即时预览

    在使用android设备的摄像头的时候我们有两种选择: 1.调用intent方法使用摄像头 2.通过camera类使用摄像头 第一种方法非常方便,不过需要跳到新的activity中,这样的用户体验并不 ...

  4. android 图片预览动画,Android实现仿Windows7图片预览窗格效果

    本实例将显示类似于windows7提供的图片预览窗格效果,单击任意一张图片,可以在右侧显示该图片的预览效果. 效果如图所示: 具体实现方法: res/layout/main.xml: android: ...

  5. android camera2预览方向,Android camera2预览无法在横向模式下正常工作

    我只想在textureView中显示相机预览. 在纵向模式下它看起来很好但在横向模式下它顺时针旋转90度. 我知道这样的事情可以解决这个问题: private static final SparseI ...

  6. android xml 预览,解决Android studio xml界面无法预览问题

    解决Android studio xml界面无法预览问题 发布时间:2020-10-05 18:48:37 来源:脚本之家 阅读:140 作者:张雨明 如下图 修改style.xml中的 parent ...

  7. android打开预览文件格式,Android中文档预览功能的实现思路及问题

    Andriod中的文档在线查看功能,类似于网易邮箱大师中的附件预览功能,要求在app内直接打开office文档.pdf文档等. 思路一:后台统一转换文档格式,安卓端只预览一种格式文档. 在后台将off ...

  8. android camera2预览方向,Android Camera2预览偶尔会旋转90度(示例代码)

    我正在使用Android的Camera2 API开发一些应用程序.到目前为止,我已经能够在TextureView中显示预览.该应用程序默认为横向模式.使用模拟器时,预览将显示为颠倒.在我的物理Nexu ...

  9. android自定义camera预览区域,android camera摄像surfaceview预览界面特定区域(该区域可移动)...

    1.自定义一个imageview用来设定surfaceview上的特定区域. public class DrawImageView extends ImageView { private Paint ...

  10. android camera 预览 数据流,Android Camera预览过程数据流浅析

    硬件平台:Atmel SAMA5D3 SoC + OV2640 Camera Sensor Android版本:4.2.2 mediaserver进程是Camera Service的容器进程,它会动态 ...

最新文章

  1. 编程作业—C++初探 简单的学生信息处理程序实现
  2. Another kind of Fibonacci
  3. Spring @Import源码解析
  4. CTR深度学习模型之 DIN(Deep Interest Network) 的理解与例子
  5. C#开源类库推荐:拼多多开放平台SDK,开源免费,支持.NET Core!
  6. 【bzoj3514】 Codechef MARCH14 GERALD07加强版
  7. 10停止nginx命令 win_Linux下配置Nginx并使用https协议
  8. LINUX C系统编程与PYTHON中的时间模块对比
  9. js中精度问题以及解决方案
  10. Perl语言入门到精通学习路线
  11. 手柄xinput模式_让你的普通手柄变成360手柄(XInputEmulator)
  12. 全球医疗实力排名:各国差距有多大?
  13. 解决Could not get a resource from the pool 异常问题
  14. 学计算机应用表白,521.1314表白的数学题 学霸间的表白方式
  15. 在天堂与地狱之间——清华浪子梦断中关村 (转)
  16. 科学计算机复利现值怎么计算公式,怎么用科学计算器算年金现值和复利现值是那个......
  17. python 类和对象 atm_Python实现ATM提款机系统
  18. 机器人手眼标定 (四轴六轴都适用)
  19. 2.04 标志寄存器
  20. VHDL三输入与门、四选一复用器

热门文章

  1. python for循环求1到100的和_python中用for循环语句实现1加到100的方法
  2. visio增加连接点
  3. 07-SNAP处理Sentinel-1 IW GRD数据
  4. 计算机过热保护,CPU过热 保护电脑关机的解决办法有哪些
  5. HDU5211——Mutiple
  6. ps 提示暂存满,不能导入文件
  7. 科技论文写作之时态问题
  8. Excel文本如何间隔指定字符插入分隔符
  9. 只需10行代码就能对Excel文件进行批量去重~
  10. 睡觉计算机主机在身旁好么,笔记本电脑的睡眠和休眠之间有什么区别