6

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

因此,根据文档,我可以设置目标分辨率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配置错误还是这是一个错误?

4

2 回答 2

2

这可能是最近在 AOSP 修复的错误。参考https://android.googlesource.com/platform/frameworks/support/+/5c1aed8c4c502a74eb4ee6d30fe2089f4afcaf11

于 2019-07-31T10:27:48.923 回答
2

android文档是这样说的:

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

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

于 2020-07-29T16:17:01.653 回答