使用 CameraX 使用长焦镜头进行变焦
Posted
技术标签:
【中文标题】使用 CameraX 使用长焦镜头进行变焦【英文标题】:Zoom with the telephoto lens with CameraX 【发布时间】:2022-01-05 15:43:00 【问题描述】:在我的应用中,变焦仅限于主镜头而不是设备的长焦镜头(如果有的话)。
长焦镜头可以由任何制造商提供;我不希望实现特定于制造商设备的 API 来访问长焦或广角镜头。
这会导致图片效果不佳,并且应用无法进一步缩放到主摄像头的缩放限制范围内。
如何使用长焦镜头(如果可能,也可以使用广角镜头)放大我的应用程序?
谢谢。
【问题讨论】:
【参考方案1】:CameraX 根本无法为您提供您想要/需要的相机/镜头。您可以将缩放级别设置为最低可用,并希望获得最好的结果。您可以尝试 Camera2,但也不能保证。 理论上,如果您将缩放比例设置为低于 1.0f,这应该会使 cameraX 使用广角相机。实际上,除了 Pixel 6 之外,我从未见过任何设备支持此功能。甚至 Google Pixel 也无法实现必要的功能来支持带有 CameraX 的 3rd 方相机应用程序。如果您想检查,可以通过以下方式设置最小可用缩放:在大多数设备中,您会看到最小缩放为 1.0f,而在 Pixel 6 中为 ~0.7f。
val maxAvailableZoom = camera?.cameraInfo?.zoomState?.value?.maxZoomRatio
val minAvailableZoom = camera?.cameraInfo?.zoomState?.value?.minZoomRatio ?: 1f
camera?.cameraControl?.setZoomRatio(minAvailableZoom)
【讨论】:
以上是关于使用 CameraX 使用长焦镜头进行变焦的主要内容,如果未能解决你的问题,请参考以下文章