谷歌Camerax使用到的类对象及功能总结

ImageCapture:图片捕捉对象

这个类是为基本的拍照而设计的。
它提供了takePicture()函数将图片存入内存或保存到文件中,并提供图像元数据。照片是在焦点聚合后的自动模式。属性可额外设置闪光模式应用程序。

TakePicture立即返回和一个监听器,被调用后提供的结果拍摄完成。多次调用takePicture将按顺序开始拍照拍摄前一张照片后。

注意,对焦和曝光计量区域可以通过{@link Preview}进行控制。

捕获到内存时,捕获的图像可以通过{@link ImageProxy}获得,通过一个{@link ImageCapture.OnImageCapturedCallback}。 ** 设置闪光灯模式** **设置保存图片的横纵比** **设置裁剪比,进行裁剪以照片的中心为准进行裁剪,和分辨率也有关系** **设置所需的输出图像旋转,与preview相同即可** **takePicture(),有返回保存在内存中的静态图像的回调;有返回已经保存在File文件中的回调;**

ViewFinder(PreviewView):取景器

自定义视图,显示CameraX的预览用例的摄像机提要。

这个类管理表面生命周期,以及预览长宽比和取向。在内部,它使用{@link android.view。TextureView}或{@link android.view。SurfaceView},(camerax封装的子类是TransformableSurfaceView,**支平移和缩放**),来显示摄像头的进给。 **设置此配置的目标图像的宽高比,设定初始目标旋转**

Preview:预览对象,提供一个与实现无关的选项的静态配置。

提供用于在屏幕上显示的相机预览流的用例。

预览流连接到提供的{@link Surface}通过{@link SurfaceProvider}。应用程序决定如何显示{@link Surface},负责管理提供后的{@link Surface}生命周期。

显示预览与正确的方向,app需要采取不同的行动根据表面的来源。如果{@link Surface}由{@link SurfaceView}支持,它将始终处于设备的显示方向。如果{@link Surface}是由{@link ImageReader}, {@link MediaCodec}或其他对象,它是应用程序的计算旋转的责任。如果{@link Surface}由a支持 {@link SurfaceTexture}, {@link SurfaceTexture#getTransformMatrix(float[])}可用于将预览转换为自然方向。该值在推入帧之后可用到{@link SurfaceTexture}及其 {@link SurfaceTexture.OnFrameAvailableListener#onFrameAvailable(SurfaceTexture)}已被调用。 {@link TextureView}自动处理此操作,并始终将预览放在自然取向。为了进一步将{@link TextureView}转换为显示方向,应用程序需要应用当前的显示旋转。 例子: switch (getWindowManager().getDefaultDisplay().getRotation()) { * case Surface.ROTATION_0: * displayRotation = 0; * break; * case Surface.ROTATION_90: * displayRotation = 90; * break; * case Surface.ROTATION_180: * displayRotation = 180; * break; * case Surface.ROTATION_270: * displayRotation = 270; * break; * default: * throw new UnsupportedOperationException( * "Unsupported display rotation: " + displayRotation); * } * matrix.postRotate(-displayRotation, centerX, centerY); * textureView.setTransform(matrix); ** 设置目标分辨率** **设置目标宽高比** **setTargetAspectRatioCustom设置此配置的目标图像的宽高比,此方法将删除setTargetAspectRatio()设置的任何值。**

CameraSelector:相机选择器

用于选择相机的一组要求和优先级。
包含默认选择前置摄像头还是后置摄像头

ProcessCameraProvider:进程相机提供者(用于生命周期)

可用于将相机的生命周期绑定到任意{@link LifecycleOwner}的单例在应用程序的过程中。
在一个进程中只能存在一个进程的摄像头提供者,并且它可以被检索使用{@link #getInstance(Context)}。

重量级资源,如打开和运行的摄像机设备,将被限制到提供给{@link #bindToLifecycle(LifecycleOwner, CameraSelector, UseCase…)}的生命周期。 其他轻量级资源,如静态相机特征,可能会被检索和使用{@link #getInstance(Context)}和将会坚持首次检索此提供程序时缓存在过程的生命周期内持续。 **绑定到生命周期上,可以获得到相机提供者**

ImageAnalysis:分析图像产生的结果(目前需求暂时用不到)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值