[android] 안드로이드 카메라 필터 적용

안드로이드 앱을 개발할 때 카메라 앱을 사용해 다양한 필터를 적용하고자 할 경우가 있습니다. 이때 안드로이드에서 카메라 필터를 적용하는 방법에 대해 알아보겠습니다.

카메라 앱 및 필터 라이브러리 선택

우선 카메라를 사용하기 위해 카메라X 또는 카메라 2 API 등의 안드로이드 카메라 API를 사용할 수 있습니다. 이외에도 GPUImage와 같은 오픈 소스 필터 라이브러리를 사용할 수도 있습니다.

카메라 앱 구현

카메라 앱을 개발하고 카메라 미리보기를 화면에 표시합니다.

// Kotlin 예시
val cameraProviderFuture = ProcessCameraProvider.getInstance(context)

cameraProviderFuture.addListener({
    val cameraProvider: ProcessCameraProvider = cameraProviderFuture.get()

    val preview = Preview.Builder().build()
    val imageAnalysis = ImageAnalysis.Builder().build()
    val imageCapture = ImageCapture.Builder().build()

    // Use cases를 카메라 수명주기에 바인딩
    cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview, imageAnalysis, imageCapture)
}, ContextCompat.getMainExecutor(context))

필터 적용

선택한 라이브러리를 사용하여 카메라로 촬영한 프레임에 필터를 적용합니다.

// GPUImage를 사용한 필터 예시
val gpuImage = GPUImage(context)
gpuImage.setImage(inputImage)
val filteredImage = gpuImage.getBitmapWithFilterApplied()

추가적인 기능 구현

필터를 적용하고 나면, 사용자에게 추가적인 기능을 제공할 수 있습니다. 예를 들어, 필터 적용 전/후 사진을 비교해 볼 수 있는 슬라이더 뷰 레이아웃 추가, 필터 목록을 스크롤하여 선택할 수 있는 기능 등을 구현할 수 있습니다.

안드로이드에서 카메라에 필터를 적용하는 방법에 대해 알아보았습니다. 원하는 필터를 선택하고, 선택한 라이브러리를 적용하여 사용자에게 멋진 카메라 경험을 제공해 보세요!