【问题标题】:Setting target resolution for CameraX not working as in documentation为 CameraX 设置目标分辨率不像文档中那样工作
【发布时间】:2019-07-29 13:30:54
【问题描述】:

我想使用 CameraX 库以固定分辨率(即1200x1600)拍摄照片。

所以根据文档我可以为ImageCaptureConfig设置目标分辨率:

val imageCaptureConfig = ImageCaptureConfig.Builder()
    .setLensFacing(CameraX.LensFacing.BACK)
    .setCaptureMode(ImageCapture.CaptureMode.MAX_QUALITY)
    .setTargetResolution(Size(1200, 1600))
    .setTargetAspectRatio(Rational(3,4))
    .build()

文档描述setTargetResolution方法如下:

设置预期的输出目标分辨率。

目标分辨率尝试为 图像分辨率。实际图像分辨率将是最接近的 尺寸不小于目标的可用分辨率 分辨率,由相机实现确定。但是,如果没有 存在等于或大于目标的分辨率 分辨率,最接近的可用分辨率小于目标 将选择分辨率。

如果我错了,请纠正我,但如果设备能够拍摄大于1200x1600(例如3024x4032)的照片,则输出照片将至少为1200x1600

不幸的是,在许多设备(例如Huawei P20 ProSamsung A5)中,输出照片明显小于1200x1600,例如480x640。请注意,这些设备能够拍摄非常大的照片。

是我的ImageCaptureConfig 配置错误还是这是一个错误?

【问题讨论】:

  • 这个问题有回归的可能性吗?我们现在在使用 Alcatel 的前置摄像头时看到了这一点,尝试使用 Camera X 设置 720 x 1280 会导致奇怪的较低分辨率,但是与其他非基于 Camera X 的应用程序相同的设备可以使用 720 x 1280 而没有似乎有问题。
  • @FranMarzoa 同样的问题发生在这里。你找到解决办法了吗?
  • @ch271828n 抱歉,很遗憾,我没有。我只需要捕获一帧,因此作为一种解决方法,我使用较低的分辨率进行预览和分析,但最后一帧是使用图像捕获用例拍摄的,它具有更高的分辨率。

标签: android android-jetpack android-camerax


【解决方案1】:

【讨论】:

  • 谢谢!你知道这个修复是否会在下一个版本中可用吗?
  • @Wasim Ansari 你能告诉我这个存储库中哪个类有解决方案吗?
  • 您好,同样的问题也发生在这里。是回归还是已部署?
【解决方案2】:

android documentation 这么说:

您不能在同一个用例上同时设置目标纵横比和目标分辨率。这样做会在构建配置对象时抛出 IllegalArgumentException。

所以决定什么对你来说更重要,然后只选择一个。

【讨论】:

  • 感谢您的回复。它变成了一个错误,在这里提到:stackoverflow.com/a/57288661/4386668。仅供参考 - 在撰写此问题时,设置纵横比和目标分辨率都不是问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-01
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多