当前位置: 首页 > 知识库问答 >
问题:

获取CameraX最终分辨率

仰经武
2023-03-14

刚刚在Android中创建了一个相机预览,带有以下配置:

    PreviewConfig previewConfig = new PreviewConfig.Builder()
            .setLensFacing(CameraX.LensFacing.FRONT)
            .setTargetResolution(new Size(720, 720))
            .build();
    Preview preview = new Preview(previewConfig);

现在的问题是,这样的目标分辨率可能不可用,在这种情况下,预览将选择与请求的分辨率接近的分辨率。我在这里要问的是,如何知道预览中有效地选择了哪种分辨率。

提前感谢!

共有2个答案

狄卓君
2023-03-14

好吧,我找到了一个解决办法。

    preview.setOnPreviewOutputUpdateListener(new Preview.OnPreviewOutputUpdateListener() {
        @Override
        public void onUpdated(Preview.PreviewOutput output) {
             ...
             Size resolution = output.getTextureSize();
             ...
        }
    });
章远航
2023-03-14

实际上这是可能的。我在挖掘了一点源代码后发现,在您的相机上调用bindToLifesycle后,Provider:

camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, previewUseCase, imageCaptureUseCase, analyzerUseCase)

您将能够检索为每个适用用例选择的分辨率:

val captureSize = imageCaptureUseCase.attachedSurfaceResolution ?: Size(0, 0)
val previewSize = previewUseCase.attachedSurfaceResolution ?: Size(0, 0)

希望这能有所帮助

 类似资料:
  • 我试图通过给Camerax的图像分析提供一个480x360的图像来提高人脸检测率。然而,下面的代码生成640x480图像,这将检测减少到10 fps。如果我给出480x360,我可以将速率提高到20。 > 如何获得较小的目标分辨率和分辨率 是否有显示图像分析我得到的图像作为prweview。与预览使用相反。这使得人脸检测总体上不会与预览有很大的滞后。 ImageAnalysis ImageAnal

  • 以上是我为三星S8美国版捕获图像设置的代码,我想使用最大输出分辨率为3264*2448的YUV格式。但是,我得到的结果是1440*1080。我在S9和S8亚洲版上尝试过,代码在两款手机上都可以正常工作。很奇怪,当我将格式设置为JPEG时,它会在这款手机上工作。 我也试过S7和pixel 2,pixel 2可以以支持的最大分辨率输出YUV(不是上面的代码),但S7不能,也会给我1080*1440。

  • 问题内容: 我需要找到访问我的网站的用户屏幕的屏幕分辨率? 问题答案: 您无法使用纯PHP做到这一点。您必须使用JavaScript来完成。有几篇有关如何执行此操作的文章。 本质上,您可以设置cookie,甚至可以执行一些Ajax来将信息发送到PHP脚本。如果使用jQuery,则可以执行以下操作: jQuery: PHP(some_script.php) 所有这些实际上都是最基本的,但是它应该可以

  • 引用脚本的内容: OutFile "ScreenRes.exe" Name "Get User Screen Resolution" Caption "Get User Screen Resolution" XPStyle "on" Function ".onInit" System::Call 'user32::GetSystemMetrics(i 0) i .r0' System::Call

  • 如何在Java的CameraX中获取预览的所有可用尺寸?我已经看到了Kotlin的答案,但无法用Java实现。

  • 我想使用CameraX库捕获具有固定分辨率(即)的照片。 因此,根据文档,我可以为设置目标分辨率: 文档描述方法如下: 设置预期的输出目标分辨率。 目标分辨率试图为图像分辨率建立一个最小界限。实际图像分辨率将是尺寸上最接近的可用分辨率,该分辨率不小于目标分辨率,如相机实现所确定的。但是,如果不存在等于或大于目标分辨率的分辨率,则将选择小于目标分辨率的最接近的可用分辨率。 如果我错了,请更正我,但是