Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

모바일 앱(안드로이드)

카메라X·젯팩 구성으로 스포트라이트 효과 창출 ... 퍼옴

Billcorea 2025. 2. 15. 15:32
반응형

카메라X·젯팩 구성으로 스포트라이트 효과 창출

카메라



• 이 블로그 게시물은 얼굴 감지를 활용하여 얼굴을 강조 표시하는 카메라X와 제트팩 컴포즈를 사용하여 카메라 프리뷰에 스포트라이트 효과를 구현하는 방법을 자세히 설명합니다.

• 이 프로세스는 CameraX에 의해 직접 노출되지 않은 Camera2 기능에 액세스할 수 있는 Camera2Interop API를 통해 얼굴 감지를 가능하게 하기 위해 CameraPreviewViewModel을 수정하는 것으로 시작됩니다. 여기에는 얼굴 경계에 대한 StateFlow를 생성하고 STATISTICS_FACE_DETECT_MODE를 FULL로 설정하는 것이 포함됩니다.

• 처음에 센서 좌표에서 감지된 페이스 바운딩 박스는 UI 좌표를 구성하기 위한 변환이 필요하며, 여기에는 센서 좌표를 미리보기 버퍼 좌표로 변환한 다음 변환 행렬을 사용하여 버퍼 좌표를 UI 좌표를 구성하는 2단계 프로세스가 포함된다.

• 서피스레퀘스트의 트랜스포메이션인포와 카메라X뷰파인더의 코디네이트트랜스포머를 이용하여 이러한 변환을 수행하기 위한 헬퍼 방법이 생성되며, 코디네이트트랜스포머의 행렬은 원하는 버퍼-투-UI 좌표 변환을 달성하기 위해 반전된다.

• Canvas를 사용하여 스포트라이트 효과를 그리기 위해 구성 가능한 CameraPreviewContent가 업데이트됩니다. 감지된 얼굴에 방사형 기울기가 그려져 BlendMode를 사용하여 얼굴 경계 내에서 투명한 효과를 생성합니다. DstOut 및 AnimatedVisibility는 오버레이를 애니메이션화하는 데 사용됩니다.

• 구현은 파생된 스테이트오프를 사용하여 재구성을 효율적으로 관리하고, 프로듀스스테이트를 사용하여 표면 요청에서 변환 정보에 대한 청취자를 관리하여 적절한 정리를 보장합니다.

• 결과적인 스포트라이트 효과는 카메라 프리뷰와 매끄럽게 통합된 감지된 얼굴을 강조 표시하여 시각적으로 풍부한 카메라 경험을 생성하기 위한 컴포즈의 힘을 보여줍니다. 전면 카메라와의 미러링에 관한 알려진 문제가 언급됩니다.

https://medium.com/androiddevelopers/create-a-spotlight-effect-with-camerax-and-jetpack-compose-8a7fa5b76641

Create a spotlight effect with CameraX and Jetpack Compose

Part 3 — Explore how to overlay Compose UI elements on top of your camera preview for a richer user experience.

medium.com

반응형