2

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.

areyouSEARious
  • 117
  • 1
  • 13

2 Answers2

6

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

Xi 张熹
  • 10,492
  • 18
  • 58
  • 86
2

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.

areyouSEARious
  • 117
  • 1
  • 13