2017-11-08 19 views
0

카메라 2 미리보기를 사용하여 카메라 미리보기를 원형으로 표시하려고합니다. 원형 모양으로 미리보기를 표시하고 싶지만 이미지를 원형으로 캡처하려고하지 않습니다.동그라미로 카메라 미리보기 표시

캡처 된 이미지는 얼굴입니다 (나중에 얼굴 인식 및 자동 캡처를 구현하고 싶음). 벌써 물어 보았던 몇 가지 질문에 대해 살펴 보았습니다. 그러나 새로운 카메라 2 API를 사용하는 사람은 없으며 대부분이 투명 서클로 자른 오버레이 이미지가 있다고 이야기합니다. 하지만 얼굴을 자동으로 감지해야하는 경우에는 작동하지 않습니다 (얼굴이 자른 원형 이미지의 바깥쪽에 나타날 수 있음).

이것을 구현할 수있는 방법이 있습니까? TextureView를 사용하여 예제를 시도하고 고정 된 너비와 높이를 가진 LinearLayout으로 설정했지만 미리보기가 약간 축소되고 사각형 모양으로 나타납니다.

+0

미리보기에 ImageView를 사용하는 경우이 답변을 참조하십시오 [원형 이미지 뷰 만드는 법] (https://stackoverflow.com/questions/22105775/imageview-in-circular-through-xml) –

답변

2

왜 얼굴 인식이 중요한지 알지 못합니다. 카메라 API의 얼굴 인식기를 사용하면 원 안에 그리는 작업에 관계없이 전체 이미지로 실행됩니다.

올바른 모양의 TextureView 또는 SurfaceView 위에 원형 오버레이를 사용하거나 카메라 미리보기를 EGL 텍스처로 사용하여 자신의 OpenGL 렌더링을 수행 할 수 있습니다.

OpenGL 드로잉 컨텍스트 용 GLSurfaceView와 카메라 데이터를 보내고 EGL 텍스처로 노출시키는 SurfaceTexture가 필요합니다.

캡처 된 JPEG는 전체 FOV가되며 카메라 API는 원형 미리보기 드로잉에 대해 아무 것도 모르기 때문에 얼굴 인식과 그 밖의 모든 것이 전체보기에서 작동합니다.

+0

나는 ' TextureView의 정확한 모양이 무엇을 의미하는지 이해합니다. TextureView를 원형으로 만들어야한다는 것을 의미합니까? 아시다시피 샘플 코드를 제공해 주시겠습니까? 미리보기를 원형으로 표시하는 데 방해가됩니다. – Neha

+0

Android보기를 서클로 만들 수 없습니다. 그들은 항상 직사각형이다. 따라서 OpenGL 또는 다른 드로잉 코드를 필요로하는 하나의 원으로 그리거나 TextureView 위에 그려진 투명한 원과 ImageView 또는 유사한 것을 오버레이해야합니다. –

+0

나는 비슷한 접근법을 따랐습니다. 배경에서 카메라 미리보기를 설정하고 투명한 원으로 이미지를 겹쳐서 모든 것이 효과가있었습니다. 감사합니다! – Neha