Обрезать изображение предварительного просмотра с помощью Android Camera2 API - PullRequest
0 голосов
/ 14 марта 2019

Цель состоит в том, чтобы обрезать предварительный просмотр на поверхности для кадров, полученных из сеанса захвата API Camera2, но не обрезать видео, которое будет создано само.

Например, у меня есть разрешение потоковой передачи:1920x1080 (16:9) и размер экрана (только для примера) 2000x3000 (2:3 -> 6:9 или 16:24, давайте выберем второй вариант, например), поэтому я бы хотелу меня есть мое видео в исходном разрешении потоковой передачи - 1920x1080, но мой предварительный просмотр, чтобы заполнить все доступное пространство без View изменения размера - таким образом, это должно быть 5333x3000 (просто увеличивая размер, чтобы заполнить область прямоугольника, используя тот же аспектотношение как единица разрешения потоковой передачи), а затем «вырезать» «данные кадра, которые соответствуют разрешению этой поверхности (которое, я полагаю, 5333x2000)», к 2000x3000 (просто удалите (5333 - 2000) / 2 как сверху, так и снизу).

Возможно ли это?

PS: плохо то, что пример google для camera2 api изменяет размер самого представления, и эти "пустые области" нежелательны для меня.Я не нашел ничего, что даже близко соответствовало бы моей проблеме.

PSS: AFAIU это решение SO обрезает кадр, который исходит из самой камеры, но мне нужно, чтобы мое видео было воригинальное разрешение.

1 Ответ

1 голос
/ 14 марта 2019

Если вы используете TextureView, вы, вероятно, можете настроить матрицу преобразования , чтобы увеличить предварительный просмотр (и обрезать края в процессе).Прочитайте существующую матрицу, исправьте соотношение сторон и увеличьте его, а затем сохраните новую матрицу .

Но учтите, что при сохранении поля зрения, отличного от того, что вы показываетечто пользователь, вероятно, вызовет у вас негативную реакцию - используйте предварительный просмотр, чтобы скомпоновать то, что он хочет записать, и если у того, что вы сохраняете, есть дополнительные материалы, записанное видео не будет соответствовать ожиданиям.Конечно, возможно, это не касается вашего варианта использования.

...