首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何裁剪Camera2预览而不覆盖对象?

在Camera2预览中裁剪而不覆盖对象,可以通过以下步骤实现:

  1. 获取预览尺寸:使用Camera2 API获取当前设备支持的预览尺寸列表,选择合适的尺寸作为预览尺寸。
  2. 计算裁剪区域:根据预览尺寸和目标对象的位置、大小,计算出需要裁剪的区域。可以使用坐标转换和比例计算来确定裁剪区域的位置和大小。
  3. 设置预览区域:通过Camera2 API的参数设置,将裁剪区域应用到预览中。可以使用CaptureRequest.Builder的set(CaptureRequest.SCALER_CROP_REGION, Rect)方法来设置裁剪区域。
  4. 开始预览:通过CameraCaptureSession的setRepeatingRequest方法开始预览。

这样就可以在Camera2预览中裁剪而不覆盖对象了。

Camera2 API是Android提供的相机框架,用于控制和操作设备的相机功能。它提供了更高级的功能和更灵活的控制,适用于开发需要更多相机控制的应用程序。

Camera2 API的优势包括:

  • 更高的性能:相比于旧的Camera API,Camera2 API提供了更高的性能和更低的延迟。
  • 更灵活的控制:Camera2 API提供了更多的参数和选项,可以更精确地控制相机的各种功能。
  • 支持多摄像头:Camera2 API支持同时操作多个摄像头,可以实现更多样化的应用场景。

Camera2 API的应用场景包括但不限于:

  • 相机应用程序:Camera2 API提供了更多的控制选项,可以实现更丰富的相机应用程序,如手动对焦、曝光控制、HDR等功能。
  • 视频通话应用程序:Camera2 API可以实现更高质量的视频通话,支持更多的编码参数和选项。
  • 计算机视觉应用程序:Camera2 API提供了更多的图像处理选项,可以用于计算机视觉应用程序,如人脸识别、物体检测等。

腾讯云相关产品中,与相机和图像处理相关的产品包括:

注意:以上答案仅供参考,具体实现方式可能因应用场景和需求而有所差异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

自定义相机中如何实现二维码扫描功能

不过zbar已经好几年没有更新了,zxing由Google开源并持续维护,所以本文就选择采用zxing来实现二维码扫描功能。...流程分析 我们先参考一下官方的封装,看看整个流程是如何实现的。...扫描框一般都是和相机预览界面居中对齐,如果我们需要在扫描框内做二维码识别的话,就需要根据扫描框的位置对预览YUV进行裁剪,为了方便映射UI和预览区域进行计算,就偷懒啦 ?...启动预览 打开Camera,启动预览的步骤参考Android Camera2详解 获取预览YUV数据 Camera2中获取预览YUV数据参考Android Camera2如何获取预览YUV数据 二维码扫描...YUV数据是横屏的,UI是竖屏的 // 所以在扫描框和预览区域居中对齐的时候, // 裁剪区域的left,top参数为扫描框rect的top,left val planarYUVLuminanceSource

2.1K10

Camera2 Extensions

通过调节景深增强画面主体焦点,模糊其它区域,一般用于人像,微距等需要突出主体的场景 EXTENSION_HDR:高动态范围,可以让最终成像获得更多的动态范围和图像细节,比如拍照时使用不同的AE配置,让高光区域不过曝,暗光区域欠曝以达到最佳成片效果...,步骤和Camera2普通模式启动预览流程是类似的,三步走即可,只是一些接口不同 打开相机的步骤和Camera2普通模式无差异 创建会话则采用createExtensionSession 获取CameraExtensionSession...对象 // extension: 例如EXTENSION_HDR // listener: 使用CameraExtensionSession.StateCallback // outputs和executor...CameraExtensionCharacteristics#getAvailableCaptureRequestKeys 其余key设置将无效,被特定extension mode底层的参数覆盖 拍照...也必须来自 CameraExtensionCharacteristics#getAvailableCaptureRequestKeys 其余key设置将无效,被特定extension mode底层的参数覆盖

1.9K40
  • 一篇文章带你了解Android 最新Camera框架

    Camera2 则不强制要求你必须先开启预览才能拍照。 一次拍摄多张不同格式和尺寸的图片 在 Camera1 上,一次只能拍摄一张图片,更不同谈多张不同格式和尺寸的图片了。... Camera2 则支持一次拍摄多张图片,甚至是多张格式和尺寸都不同的图片。例如你可以同时拍摄一张 1440x1080 的 JPEG 图片和一张全尺寸的 RAW 图片。...在 Camera2 上,你可以在规定的曝光时长范围内配置拍照的曝光时间,从而实现拍摄长曝光图片,你甚至可以延长每一帧预览画面的曝光时间让整个预览画面在暗环境下也能保证一定的亮度。...因此,在 Camera2 里面所有的相机操作和参数配置都被抽象成 Capture(捕获),所以不要简单的把 Capture 直接理解成是拍照,因为 Capture 操作可能仅仅是为了让预览画面更清晰进行对焦而已...该模式的 Capture 是全局唯一的,也就是新提交的重复模式 Capture 会覆盖旧的重复模式 Capture。

    1.6K41

    一篇文章带你了解Android 最新Camera框架

    Camera2 则不强制要求你必须先开启预览才能拍照。3.一次拍摄多张不同格式和尺寸的图片 在 Camera1 上,一次只能拍摄一张图片,更不同谈多张不同格式和尺寸的图片了。... Camera2 则支持一次拍摄多张图片,甚至是多张格式和尺寸都不同的图片。例如你可以同时拍摄一张 1440x1080 的 JPEG 图片和一张全尺寸的 RAW 图片。...在 Camera2 上,你可以在规定的曝光时长范围内配置拍照的曝光时间,从而实现拍摄长曝光图片,你甚至可以延长每一帧预览画面的曝光时间让整个预览画面在暗环境下也能保证一定的亮度。...因此,在 Camera2 里面所有的相机操作和参数配置都被抽象成 Capture(捕获),所以不要简单的把 Capture 直接理解成是拍照,因为 Capture 操作可能仅仅是为了让预览画面更清晰进行对焦而已...该模式的 Capture 是全局唯一的,也就是新提交的重复模式 Capture 会覆盖旧的重复模式 Capture。

    3.3K30

    从今天开始,用对 Android 新老 Camera APIs

    ,且 1) 需要(局部)精细调节或 2) 不同手机期望有统一的效果的情况下,推荐调用官方的android.hardware.Camera API 来处理照片,可以想办法在拍摄完成后进行后期软件处理。...在 Camera2 中已经开放了设置相机预览/拍摄时的 ISO 的接口。...3-3 Camera2 结构简介 Camera2 主要有 5 个类: CameraManager 摄像设备(CameraDevice)的管理器,操作的原始发起者,由它来创建 CameraDevice 对象...要预览或者获得图像,必须要将图像投射到一个 surface 对象上,通常预览目标使用 SurfaceView 或者 TextureView;保存 JPG 或 RAW 时用 ImageReader,还有其他的目标用于视频...Single Shot 当开始预览后,sensor 和 VFE 会产生 preview 和 snapshot 帧, 最新的 snapshot 帧数据会被存储在 buffer 中。

    7.8K126

    Android CameraX 知识点

    那么Camera2就是我们的最优选择。 原先使用相机,需要自己配置很多选项。并且要注意相机对象预览数据的释放等,配置繁琐。...Google封装了Camera2,帮我们简化了很多相机的配置和管理,让开发者只需要关注预览,拍照,分析。等实际场景。将这一整套方法库封装成了CameraX,后来合并到Jetpack库中。...支持Android API 21 及以上版本,覆盖现有Android设备的98%以上。(数据是官方提供的,更低版本不支持) 易用性高:直接处理封装了预览,图片分析,图片拍摄,视频拍摄。...但是如果想预览+视频拍摄+图片拍摄,那么需要LIMITED以及更好的相机, 预览+视频拍摄+分析 就需要LEVEL_3以及更好的相机。 因为很多设备前后双摄的性能是不一样的。...所以有些功能后摄支持前摄不支持。那么如何了解呢? 可以通过Camera2CameraInfo类来了解。

    1.8K20

    Android Camera2

    因此,在 Camera2 里面所有的相机操作和参数配置都被抽象成 Capture(捕获),所以不要简单的把 Capture 直接理解成是拍照,因为 Capture 操作可能仅仅是为了让预览画面更清晰进行对焦而已...该模式的 Capture 是全局唯一的,也就是新提交的重复模式 Capture 会覆盖旧的重复模式 Capture。... Camera2 则不强制要求你必须先开启预览才能拍照。 一次拍摄多张不同格式和尺寸的图片 在 Camera1 上,一次只能拍摄一张图片,更不同谈多张不同格式和尺寸的图片了。...在 Camera2 上,你可以在规定的曝光时长范围内配置拍照的曝光时间,从而实现拍摄长曝光图片,你甚至可以延长每一帧预览画面的曝光时间让整个预览画面在暗环境下也能保证一定的亮度。..., Camera2 则把这两个流程都抽象成了 Capture 行为,只不过一个是不断重复的 Capture,一个是一次性的 Capture 而已,所以建议你不要带着过多的 Camera1 思维使用 Camera2

    2.1K51

    Android Camera2 与 Camera API技术探究和RAW数据采集

    CaptureRequest.Builder 则负责生成 CaptureRequest 对象,方便开发者设置各种参数。...拍照的优先级比预览的优先级高,如果需要多次拍照,可以多次调用 capture() 方法。支持的版本和兼容性:Android Camera2 从 Android 5.0(API 级别 21)开始支持。... Camera API 的手动控制功能非常有限,通常只能实现简单的自动调节拍摄。...性能优化方面: 并行处理能力:Camera2 支持并行拍摄和预览,在同时进行多个操作时表现更好,可以在预览的同时进行拍照、录像等操作,并且不会相互干扰,提高了相机的使用效率和响应速度。...新的 Android 版本会对 Camera2 进行更好的优化和支持, Camera API 可能会逐渐被淘汰,使用 Camera2 可以更好地保证应用在不同 Android 版本上的兼容性3。

    17620

    Android Camera2 实现触摸对焦功能(Touch to Focus)

    之前在 Android Camera2 简介 这篇文章中简单介绍了下 Camera2 中 AF/AE 对焦区域如何进行设置,之前是通过手动计算对应关系实现的,但这种方式需要考虑到前后摄的区别,前摄和后摄坐标映射有区别...,通用性不好,本文讲一下如何通过矩阵(Matrix)来实现这个过程 为什么要进行坐标映射 由于我们预览界面通常都是竖屏,而对于 Camera 底层的坐标来说,一般预览竖屏方向和后摄有90度夹角,和前摄有...旧的Camera底层坐标范围大小是固定的,宽高都为2000,Camera2中的大小要根据查询出来的 SENSOR_INFO_ACTIVE_ARRAY_SIZE 来进行确定 使用Matrix进行坐标映射...= 0; } } 转换逻辑都在 previewToCameraTransform() 函数中,直接求Preview到Camera Driver的坐标转换,不是像Android源码里面先反向求矩阵然后反转...即设置: mPreviewBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER,CaptureRequest.CONTROL_AF_TRIGGER_IDLE); 如果设置的话

    3.2K20

    音视频直播技术--Android视频采集(Camera2)

    Camera2 介绍 今天为大家介绍一下如何在 Android 上进行视频采集。在 Android 系统下有两套 API 可以进行视频采集,它们是 Camera 和 Camera2 。...我今天主要给大家介绍一下如何使用 Camera2 进行视频的采集。...CameraRequest.Builder:负责生成CameraRequest对象。 使用 Camera2 基本流程 创建一个专门的线程用于Camera的具体操作。...CaptureRequest.Builder是一个非常重要的对象,它主要包括两方面的作用,一是可以把预览或录制的Surface给它,这样每个Surface就可以从Camera拿到采集到的图片原始数据,这是一个典型的观察者模式...小结 通过上面对 Camera2 API 使用的分析,我们们可以看到 Camera2 完全采用了异步的架构模式,在完成 Camera 每一步操作后系统都会通知用户,用户可以在回调时做下一步的操作,不用一直等待

    2K20

    Android平台实现Camera2数据推送到RTMP服务器

    ; 对Camera的控制更加完全(比如支持调整focus distance, 剪裁预览/拍照图片); 支持更多图片格式(yuv/raw)以及高速连拍等。...Capture 请求,摄像头会返回 CameraMetadata。...下面是 camera2包中的主要类: ​ 其中 CameraManager 是那个站在高处统管所有摄像投设备(CameraDevice)的管理者,每个 CameraDevice 自己会负责建立 CameraCaptureSession...CameraManager处于顶层管理位置负责检测获取所有摄像头及其特性和传入指定的CameraDevice.StateCallback回调打开指定摄像头,CameraDevice是负责管理抽象对象,包括监听...如何实现camera2数据对接RTMP推送: 通过OnImageAvailableListenerImpl 获取到原始数据,推送端以大牛直播SDK https://github.com/daniulive

    1.3K70

    Android多种方式实现相机圆形预览的示例代码

    在使用Camera2 API时,其支持的预览尺寸(其实也包含了PictureSize)如下: 2019-08-02 13:19:24.980 16768-16768/com.wsy.glcamerademo...资源消耗 以Samsung tab S3为例,该设备使用Camera2 API时,支持的正方形预览尺寸都很大,在进行图像处理等操作时将占用较多系统资源。...使用上面的方法操作已经可完成正方形和圆形预览,但是仅适用于原生相机,当我们的数据源并非是原生相机的情况时如何进行圆形预览?...Android View的坐标系以左上角为原点,向右x递增,向下y递增; OpenGL坐标系以中心为原点,向右x递增,向上y递增。.../** * 裁剪NV21数据 * * @param originNV21 原始的NV21数据 * @param cropNV21 裁剪结果NV21数据,需要预先分配内存 * @param width

    2K21

    Android开发笔记(一百八十一)使用CameraX拍照

    常言道,眼睛是心灵的窗户,那么相机便是手机的窗户了,主打美颜相机功能的拍照手机大行其道,可见对于手机App来说,如何恰如其分地运用相机开发至关重要。...Android的SDK一开始就自带了相机工具Camera,从Android5.0开始又推出了升级版的camera2,然而不管是初代的Camera还是二代的camera2,编码过程都比较繁琐,对于新手而言有点艰深...1、准备一个预览视图对象PreviewView,并添加至当前界面; 2、获取相机提供器对象ProcessCameraProvider; 3、构建预览对象Preview,指定预览的宽高比例; 4、构建摄像头选择器对象...bindToLifecycle方法,把相机选择器、预览视图、图像捕捉器绑定到相机提供器; 7、调用预览视图对象的setSurfaceProvider方法,设置预览视图的表面提供器; 把上述的初始化步骤串起来...; // 声明一个预览视图对象 private CameraSelector mCameraSelector; // 声明一个摄像头选择器 private Preview mPreview; // 声明一个预览对象

    1.7K20
    领券