CameraX中的1:1纵横比

问题描述 投票:1回答:1

我一直在尝试在我的android应用程序中使用CameraX,并希望预览和输出图像均为高质量1:1长宽比图像。我尝试了以下代码来设置图像和预览配置

PreviewConfig previewConfig = new PreviewConfig.Builder()
                .setTargetAspectRatio(new Rational(1, 1))
                .build();

-

        ImageCaptureConfig imageCaptureConfig = new ImageCaptureConfig.Builder()
                .setTargetAspectRatio(new Rational(1, 1))
                .setCaptureMode(ImageCapture.CaptureMode.MIN_LATENCY)
                .build();

根据开发人员指南,此代码将选择硬件在该宽高比下可以提供的最佳分辨率。尽管这在某些设备上效果很好,但在某些设备上,输出图像分辨率低至280X280像素。似乎不是该设备上硬件的有效纵横比。

我可以尝试什么解决方法?我想到的是,我认为每个设备都将支持4:3的宽高比。

我可以裁剪输出图像,但是预览如何。我们可以裁剪textureview吗?

或者我可以在取景器顶部放置一个简单的黑色矩形视图,看起来像是1:1图像吗?

java android android-layout android-camera androidx
1个回答
0
投票

您要投诉not the only one。 1:1支持是still not very good

您建议的缓解措施看起来很合理。 4:3在我见过的所有设备上提供高质量。您始终可以在预览上覆盖一些非透明视图,以提供方形预览的外观。

[在GitHub上有一个示例use MediaCodec with cropped frames to produce a square video

© www.soinside.com 2019 - 2024. All rights reserved.