Сохранение предварительного просмотра камеры в растровое изображение - PullRequest
0 голосов
/ 14 декабря 2010

Мне нужна небольшая помощь для правильной работы камеры.

Я пытаюсь сделать так, чтобы пользователь сделал снимок, который затем будет использован в другом действии в качестве фона представления. Важно не иметь перекосов, и в идеале изображение должно заполнять весь фон с максимально возможным разрешением.

У меня было чертовски много времени, когда я старался, чтобы выводимое изображение с моей камеры было правильно ориентировано и было таким же, как на дисплее. Поэтому мне потребовалось некоторое время, чтобы подумать, что именно мне нужно сделать, и я не думаю, что мне вообще нужно нормальное сохраненное изображение.

Что я придумал, так это то, что мне нужен вид поверхности для отображения предварительного просмотра, наложение для некоторого текста и кнопка захвата. Когда пользователь «делает снимок», он должен выполнить автофокусировку, а затем мне нужно захватить предварительный просмотр (под наложением экрана) в растровое изображение для использования в другом упражнении.

* Следует ли расширить SurfaceView для предварительного просмотра и добавить его в макет XML, содержащий наложения?

* Как сохранить изображение SurfaceView в растровое изображение?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 декабря 2010

Очевидно, что нет хорошего способа преобразовать формат изображения кадров предварительного просмотра в формат jpeg, поэтому я в итоге выбрал размер для камеры, выбрав каждое из поддерживаемых разрешений камеры и получив наиболее близкое соответствие аспект экрана с самым высоким разрешением.

Поскольку метод camera.setRotation, похоже, ничего не делает, я просто поворачиваю изображение 90 с помощью матрицы перед сохранением его на карту, если я нахожусь в портретном режиме.

0 голосов
/ 14 декабря 2010

Мэтт, один основной вопрос, и извините за мою наивность, не проще ли будет использовать встроенную камеру для Android через Intent?Это выполнимо, я делал это раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...