CameraX PreviewView Screenshot

2.9k Views Asked by At

I want to convert CameraX preview to bitmap from previewView. Something similar to textureView.bitmap

I have tried it with a textureview and it works perferctly, i can take a screenshot of the cameraview but the camera is stretched.

2

There are 2 best solutions below

4
On BEST ANSWER

PreviewView now supports screenshot by calling PreviewView.getBitmap(). See: https://developer.android.com/reference/androidx/camera/view/PreviewView#getBitmap()

1
On

I finally found the answer in this link

First set preferred implementationmode to TextureView as below:

previewView.preferredImplementationMode = PreviewView.ImplementationMode.TEXTURE_VIEW

Then get the bitmap

fun getPreviewViewBitmap(width: Int, height: Int): Bitmap? {
    val previewChildView = previewView.getChildAt(0)

    if (previewChildView is TextureView)
        return previewChildView.getBitmap(width, height)

    return null
}

Note: I have only tested on a few devices and it works great.

Cheers.