Я в неудачном положении, когда мои веб-разработчики хотят, чтобы изображение загружалось к ним в виде строки байтового массива. Я храню их в основных данных и загружаю в них. Позже мне все еще нужно отобразить изображения в приложении пользователя; но мои представления изображений не заполняются изображениями и не работают с этой ошибкой:
Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
Вот создание byteArray:
val mBitmapDrawable = mView.drawable as BitmapDrawable
val mBitmap = mBitmapDrawable.bitmap
val stream = ByteArrayOutputStream()
mBitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream)
val mByteArray = stream.toByteArray()
val charset = Charsets.UTF_8
val mByteArrayString = mByteArray.toString(charset)
val newItemName = "pgraph-${currentItem.itemName}"
valueArray.add(Pair(newItemName, mByteArrayString))
Вот попытка декодировать его обратно:
val imageByteArray = selectedInspection.fields[i].second.toByteArray(charset)
val mImageBitmap = Bitmap.createBitmap(BitmapFactory.decodeByteArray(
imageByteArray,
0,
imageByteArray.size
))
mView.setImageBitmap(Bitmap.createScaledBitmap(mImageBitmap, mView.width, mView.height, false))
Я получаю правильную строку байтового массива в своих журналах, прежде чем пытаться создать растровое изображение, поэтому imageByteArray не является недействительным. Ошибка возникает в строке «mView.setImageBitmap». Кто-нибудь знает, что может быть причиной этой ошибки? Любая помощь очень ценится!
РЕДАКТИРОВАТЬ: Также видеть это прямо перед Cra sh. Я не знаю, связано ли это:
D/skia: --- Failed to create image decoder with message 'unimplemented'