我正在尝试将一个帧格式转换为位图,但总是收到null。有人能帮助我解决这个问题吗?
我正在Kotlin使用camera2
private val imageListener = ImageReader.OnImageAvailableListener { reader ->
val image = reader?.acquireLatestImage()
try {
val imageBytes = image?.planes?.first()?.buffer?.toByteArray()
val imageBase64 = Base64.encodeToString(imageBytes, Base64.DEFAULT)
Log.d(TAG, imageBase64)}
catch (e: Exception) {
e.printStackTrace()
}
image?.close()
}
}
我尝试将其更改为base46,但base64无法解码。当我尝试使用PNG或JPG在线解码时,我总是得到一个400x400透明色的图像。
1条答案
按热度按时间hs1rzwqc1#
我假设捕获请求被配置为将输出编码为JPEG格式?
如果是这样的话,你需要将字节读入一个字节数组,然后将jpeg转换为Bitmap。
你有没有考虑过CameraX?它可以简化拍摄过程,并且可以处理很多问题。https://developer.android.com/training/camerax/take-photo
下面是一些你可以尝试的东西的快速概述: