Camera2 ImageReader
2024-05-19 本文已影响0人
不会弹钢琴de大叔
在开发中发现在camera2获取onImageAvailable(ImageReader reader)image数据时,部分机型在设置 ImageFormat.YUV_420_888 属性后,返回的ImageReader中返回的Image image = reader.acquireNextImage(); image对象并非都是yuv 420的类型,有的机型返回的时yuv 422类型。
//看yuv的类型通过下面的方法即可
Image.Plane[] planes = image.getPlanes();
ByteBuffer bufferY = planes[0].getBuffer();
ByteBuffer bufferU = planes[1].getBuffer();
ByteBuffer bufferV = planes[2].getBuffer();
如果bufferY :bufferU:bufferV = 4:1:1 就是yuv 420
如果bufferY :bufferU:bufferV = 4:2:2 就是yuv 422
mImageReader = ImageReader.newInstance(mPreviewSize.getWidth(), mPreviewSize.getHeight(),
ImageFormat.YUV_420_888, 1);