You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Android Camera2采集图像帧转Bitmap及Base64编码解码异常问题求助

Android Camera2采集图像帧转Bitmap及Base64编码解码异常问题求助

各位大佬好,我现在用Kotlin开发Camera2相关功能,想要把采集到的图像帧转成Bitmap再编码为Base64字符串,但一直遇到异常问题:要么转出来的Base64解码后是null,要么在线用PNG/JPG格式解码时,得到的是一张400x400的透明图,实在找不到问题所在,有没有人能帮我排查下?

我目前的实现代码如下:

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()
}

我现在是直接取Image的第一个Plane转成byte数组后编码,但解码结果完全不符合预期。我猜测会不会是Camera2输出的图像格式(比如YUV_420_888)不能直接这么粗暴转成byte数组?或者处理Buffer的时候有什么细节没做到位?

麻烦各位帮忙分析下问题,感谢!

备注:内容来源于stack exchange,提问作者ahmad yamani

火山引擎 最新活动