Camerax Java可用尺寸

发布于 2025-01-25 19:19:04 字数 566 浏览 0 评论 0原文

如何在Java的Camerax中获取所有可用尺寸?我已经看到了Kotlin的答案,但无法使用Java。

val camera = cameraProvider.bindToLifecycle(this, cameraSelector, preview, imageAnalyzer)
val cameraId = Camera2CameraInfo.extractCameraId(camera.cameraInfo)
val cameraManager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager
val characteristics = cameraManager.getCameraCharacteristics(cameraId)
val streamConfigurationMap = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP)
val outputSizes = streamConfigurationMap.getOutputSizes(format)

How to get all available sizes for the preview in CameraX in Java? I've seen the answer for Kotlin but couldn't make it with Java.

val camera = cameraProvider.bindToLifecycle(this, cameraSelector, preview, imageAnalyzer)
val cameraId = Camera2CameraInfo.extractCameraId(camera.cameraInfo)
val cameraManager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager
val characteristics = cameraManager.getCameraCharacteristics(cameraId)
val streamConfigurationMap = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP)
val outputSizes = streamConfigurationMap.getOutputSizes(format)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无戏配角 2025-02-01 19:19:04

一种方法是:

CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraId);
StreamConfigurationMap streamConfigurationMap = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
int[] outputFormats = streamConfigurationMap.getOutputFormats();
  for (int i = 0; i < outputFormats.length; i++) {
    Size[] outputSizes = streamConfigurationMap.getOutputSizes(outputFormats[i]);
    Log.i("CAMERA_ID", "Sizes for id: " + outputFormats[i]);
    for (int j = 0; j < outputSizes.length; j++) {
      double curr_rel = (double) outputSizes[j].getWidth() / (double) outputSizes[j].getHeight();
      Log.i("CAMERA_ID", "output size: " + outputSizes[j] + "; k = " + curr_rel);
    }
}

One way to do it is:

CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraId);
StreamConfigurationMap streamConfigurationMap = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
int[] outputFormats = streamConfigurationMap.getOutputFormats();
  for (int i = 0; i < outputFormats.length; i++) {
    Size[] outputSizes = streamConfigurationMap.getOutputSizes(outputFormats[i]);
    Log.i("CAMERA_ID", "Sizes for id: " + outputFormats[i]);
    for (int j = 0; j < outputSizes.length; j++) {
      double curr_rel = (double) outputSizes[j].getWidth() / (double) outputSizes[j].getHeight();
      Log.i("CAMERA_ID", "output size: " + outputSizes[j] + "; k = " + curr_rel);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文