Android Studio, Kotlin: BitmapFactory.decodeStream () возвращает ноль - PullRequest
2 голосов
/ 06 января 2020

Я получаю строку из моей базы данных, которая представляет изображение. Я хочу снова преобразовать его в изображение, поэтому сначала я сделал его байтовым массивом, а затем попытался декодировать его. То, что происходит, - то, что по некоторым причинам это возвращает нуль, который не должен иметь место. Я напечатал размер массива, чтобы увидеть, возможно, произошла ошибка в преобразовании, но там не было никаких проблем.

private fun imageBit(image: String): Bitmap{
    val b = image.toByteArray()
    d("DEBUG2", "${b.size}") //prints 47109
    val ins = ByteArrayInputStream(b)
    d("DEBUG3", "${ByteArrayInputStream(b).readBytes().size}") //prints 47109
    return BitmapFactory.decodeStream(ins)
}

1 Ответ

1 голос
/ 06 января 2020

Попробуйте это:

private fun imgBit(image: String): Bitmap{
val imgBytes = Base64.decode(image, 0)
return BitmapFactory.decodeByteArray(imgBytes, 0, imgBytes.size) 
}
...