繁体   English   中英

使用 CameraX 使用长焦镜头进行变焦

[英]Zoom with the telephoto lens with CameraX

在我的应用程序中,变焦仅限于主镜头,而不是设备的长焦镜头(如果有的话)。

长焦镜头可以由任何制造商提供; 我不希望实现特定于制造商设备的 API 来访问长焦或广角镜头。

这会导致不太理想的图片,并且应用程序无法进一步缩放到主摄像头的缩放限制。

如何使用长焦镜头(如果可能,也可以使用广角镜头)放大我的应用程序?

谢谢。

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM