我有表示 jpeg2000 图像的十六进制字符串数据,如何使用 Kotlin 转换它并在 ImageView 中显示它?
我尝试将十六进制字符串转换为 ByteArray,就像这样:
`private fun hexStringToByteArray(hexString: String): ByteArray {
val len = hexString.length
val data = ByteArray(len / 2)
var i = 0
while (i < len) {
data[i / 2] = ((Character.digit(hexString[i], 16) shl 4)
+ Character.digit(hexString[i + 1], 16)).toByte()
i += 2
}
return data
}`
然后尝试使用 JP2 for Android 库https://github.com/ThalesGroup/JP2ForAndroid 来获取这样的图像:
`private fun showBitmap(){
hexStringToByteArray(image_JPEG_Hex)?.let {jp2data->
val bmpJP2Decoder = JP2Decoder(jp2data)
bmpJP2Decoder.decode()?.let {bmp->
imgView?.setImageBitmap(bmp)
}
}
}`
但是 bmpJP2Decoder.decode() 返回空值。