2015-04-23 3 views
0

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

Я хотел бы захватить только часть обзора камеры. Я в принципе хочу что-то вроде этого:

image1

Я попытался сделать то же самое с AndroidStudio, добавив изображение на экране, вот результат:

image2

Это некрасиво но это было просто попробовать. Вам в основном нужно положить свое лицо в прозрачную область, а затем нажать «сфотографировать». Я бы хотел, чтобы камера не брала черную часть. Как это возможно? Можно ли создать маску для камеры?

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

Вместо этого можно напрямую изменить CameraView (SurfaceView или SurfaceHolder), чтобы мне не понадобилось изображение, и изображение автоматически будет соответствовать маске, потому что на самом деле это единственное, что видит камера.

У вас есть ключи?

большое спасибо!

ответ

0

Камера видит все, что входит в ее объектив. Вы не можете «сделать», чтобы увидеть только определенную фигуру из своего обычного прямоугольника (если вы не нанесете на нее какую-то черную бумагу :)). Обрезка всегда выполняется после того, как снимок сделан. SurfaceView и SurfaceHolder - это просто инструменты, которые помогут вам представить картинку (которая может быть уже изменена, если хотите) на экране телефона.

0

Нет, вы не можете скрыть захват камеры. Вы можете применить маску к результату. Обратите внимание, что часто вы получаете неподвижное изображение с разрешением намного выше, чем вы используете для предварительного просмотра. А разрешение предварительного просмотра - это не то же самое, что разрешение экрана (которое вы должны использовать, чтобы нанести черную маску на экран). В таком случае ваша маска постобработки должна соответствовать разрешению изображения, а не разрешению предварительного просмотра.

Смежные вопросы