YuvImage知识点总结

一、 什么是YuvImage?

YuvImage包含了YUV数据,并且提供了一个将YUV数据压缩成Jpeg数据的方法。

二、  什么时候使用

相机Camera类的PreviewCallback回调中,这个接口回调的是相机的预览图片,是YUV格式的数据,这是,利用YuvImage对象的compressToJpeg方法生成Jpeg格式的图片保存在本地。

三、 包含属性

//存储的字节数
private final static int WORKING_COMPRESS_STORAGE = 4096;

  

//YUV格式
private int mFormat;

  

// 原始的YUV数据
// 注意:多个图像平面的情况下,需要连接成一个单个字节数组
private byte[] mData;

  

//跨距   stride指在内存中每行像素所占的空间  每个图像平面的行字节数(不太清楚)
private int[] mStrides;

  

//图像的宽度
private int mWidth

  

// 图像的高度
private int mHeight

四、  构造方法

1) yuv : YUV数据,多个图像平面的情况下,需要连接成一个单个字节数组

2) format:压缩格式,目前仅支持ImageFormat.NV21与ImageFormat.YUY2两个格式。

3) width:YuvImage的宽度

4) height:YuvImage的宽度

5) strides:(可选)每个图像平面的行字节。 如果YUV数据包含Padding,必须为每一个图像给一定的幅度,如果strides属性为null,该方法假设没有padding,并且根据格式和宽度自身派生行字节。

6) throws : 不合法的格式,宽高小于0,yue为空

五、  压缩方法

1) rectangle :要压缩的矩形区域

2) quality :压缩范围,0-100,其中,0表示低质量的压缩,100表示高质量的压缩

3) stream :压缩数据

六、  注意:因为安卓的摄像Camera天生是横的,竖屏拍照或者摄像的时候,需要旋转YuvImage。

原文地址:https://www.cnblogs.com/Ayinger/p/11006354.html