android camera预览翻转,android camera yuv帧水平翻转实例
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帧水平翻转实例相关推荐
- android 图片预览动画,Android图片上传实现预览效果
首先具体分析一下,实现的功能,其中需求分析是必不可少的,需求.逻辑清除之后,再上手写代码,思路会很清晰. 1.多图上传首先得选择图片(这里项目需求是既可以拍照上传也可以从相册中选择) 2.拍照上传很简 ...
- android 平板预览变形,Android SurfaceView预览变形完美解决方法
这个问题百度上一搜一大把,基本上都是说找到和SurfaceView的比例相近的camera预览尺寸,但是发现预览时候还是差了点意思,具体看下面这个回调就知道是为什么了. @Override publi ...
- android摄像头预览功能,android通过camera和surfaceview选择摄像头并即时预览
在使用android设备的摄像头的时候我们有两种选择: 1.调用intent方法使用摄像头 2.通过camera类使用摄像头 第一种方法非常方便,不过需要跳到新的activity中,这样的用户体验并不 ...
- android 图片预览动画,Android实现仿Windows7图片预览窗格效果
本实例将显示类似于windows7提供的图片预览窗格效果,单击任意一张图片,可以在右侧显示该图片的预览效果. 效果如图所示: 具体实现方法: res/layout/main.xml: android: ...
- android camera2预览方向,Android camera2预览无法在横向模式下正常工作
我只想在textureView中显示相机预览. 在纵向模式下它看起来很好但在横向模式下它顺时针旋转90度. 我知道这样的事情可以解决这个问题: private static final SparseI ...
- android xml 预览,解决Android studio xml界面无法预览问题
解决Android studio xml界面无法预览问题 发布时间:2020-10-05 18:48:37 来源:脚本之家 阅读:140 作者:张雨明 如下图 修改style.xml中的 parent ...
- android打开预览文件格式,Android中文档预览功能的实现思路及问题
Andriod中的文档在线查看功能,类似于网易邮箱大师中的附件预览功能,要求在app内直接打开office文档.pdf文档等. 思路一:后台统一转换文档格式,安卓端只预览一种格式文档. 在后台将off ...
- android camera2预览方向,Android Camera2预览偶尔会旋转90度(示例代码)
我正在使用Android的Camera2 API开发一些应用程序.到目前为止,我已经能够在TextureView中显示预览.该应用程序默认为横向模式.使用模拟器时,预览将显示为颠倒.在我的物理Nexu ...
- android自定义camera预览区域,android camera摄像surfaceview预览界面特定区域(该区域可移动)...
1.自定义一个imageview用来设定surfaceview上的特定区域. public class DrawImageView extends ImageView { private Paint ...
- android camera 预览 数据流,Android Camera预览过程数据流浅析
硬件平台:Atmel SAMA5D3 SoC + OV2640 Camera Sensor Android版本:4.2.2 mediaserver进程是Camera Service的容器进程,它会动态 ...
最新文章
- 编程作业—C++初探 简单的学生信息处理程序实现
- Another kind of Fibonacci
- Spring @Import源码解析
- CTR深度学习模型之 DIN(Deep Interest Network) 的理解与例子
- C#开源类库推荐:拼多多开放平台SDK,开源免费,支持.NET Core!
- 【bzoj3514】 Codechef MARCH14 GERALD07加强版
- 10停止nginx命令 win_Linux下配置Nginx并使用https协议
- LINUX C系统编程与PYTHON中的时间模块对比
- js中精度问题以及解决方案
- Perl语言入门到精通学习路线
- 手柄xinput模式_让你的普通手柄变成360手柄(XInputEmulator)
- 全球医疗实力排名:各国差距有多大?
- 解决Could not get a resource from the pool 异常问题
- 学计算机应用表白,521.1314表白的数学题 学霸间的表白方式
- 在天堂与地狱之间——清华浪子梦断中关村 (转)
- 科学计算机复利现值怎么计算公式,怎么用科学计算器算年金现值和复利现值是那个......
- python 类和对象 atm_Python实现ATM提款机系统
- 机器人手眼标定 (四轴六轴都适用)
- 2.04 标志寄存器
- VHDL三输入与门、四选一复用器