티스토리 뷰

반응형
SMALL

 

https://jihunstudy.tistory.com/39

 

[ Camera #1 ] CameraX

카메라2 너무 어렵고 소스가 복잡하다 CameraX Example

jihunstudy.tistory.com

 

이전글에서 간단하게 카메라 x 를 사용하는 방법에 대해서 언급 했는데 

 

사용하다보니 저장하지 않고 바로 이미지를 뽑아 올 수 없을까 해서 찾아 보다가 기록해본다.

 

반응형
imageCapture.takePicture(Executors.newSingleThreadExecutor(), object: ImageCapture.OnImageCapturedCallback() {
            override fun onCaptureSuccess(image: ImageProxy) {
                super.onCaptureSuccess(image)
                val bitmap = imageProxyToBitmap(image)?.rotate(image.imageInfo.rotationDegrees.toFloat())
            }

            override fun onError(exception: ImageCaptureException) {
                super.onError(exception)
            }
        })

 

 

저 ImageProxy 에서는 이미지에 대한 정보들이 담겨 있는듯 한데 .. 

 

자세하게 저기서 어떤 정보를 뽑아올 수 있는지는 모르겠지만 내가 필요한건 

bitmap 이미지 이기 때문에 변환 할 수 있는 방법으로 

 

private fun imageProxyToBitmap(image: ImageProxy): Bitmap? {
        val planeProxy = image.planes[0]
        val buffer: ByteBuffer = planeProxy.buffer
        val bytes = ByteArray(buffer.remaining())
        buffer.get(bytes)
        return BitmapFactory.decodeByteArray(bytes, 0, bytes.size)
    }

 

근데 여기서 또 그냥 bitmap 변환된걸 사용하게 되면 rotate 가 맞질 않는다 

 

private fun Bitmap.rotate(degrees: Float): Bitmap =
        Bitmap.createBitmap(this, 0, 0, width, height, Matrix().apply { postRotate(degrees) }, true)

 

근데 왜 후면 카메라는 회전이 잘 되서 나오는데 전면 카메라는 왜 자꾸 180도 반전이 되는걸까 흠..

 

아시는분 댓글좀 남겨 주세요..

 

 

-- 수정

회전 대응 했다.

2023.04.05 - [Android/Camera] - [ Camera #3 ] CameraX - 전면 카메라 회전현상 수정

 

반응형
LIST

'Android > Camera' 카테고리의 다른 글

[ Camera #3 ] CameraX - 전면 카메라 회전현상 수정  (0) 2023.04.05
[ Camera #1 ] CameraX  (2) 2022.09.13
댓글