Соотношение сторон 1: 1 в CameraX - PullRequest
1 голос
/ 26 сентября 2019

Я пытался использовать CameraX в своем приложении для Android и хочу, чтобы изображение для предварительного просмотра и вывода было качественным изображением с соотношением сторон 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.

Я могу обрезать выходное изображение, но как насчет предварительного просмотра.Можем ли мы обрезать текстуру вида?

Или я могу поставить простой вид черного прямоугольника поверх видоискателя, который выглядит как изображение 1: 1?

1 Ответ

1 голос
/ 27 сентября 2019

Вы не единственный , чтобы пожаловаться.Поддержка 1: 1 все еще не очень хорошая .

Предлагаемые меры по смягчению последствий выглядят разумными.4: 3 обеспечивает высокое качество на всех устройствах, которые я когда-либо встречал.Вы всегда можете наложить предварительный просмотр на некоторые непрозрачные виды, чтобы создать вид квадратного предварительного просмотра.

На GitHub есть пример, как можно использовать MediaCodec с обрезанными кадрами для созданияквадратное видео .

...