Синтаксически анализировать массив изображений Int в байтовый массив в Android при использовании BitmapFactory - PullRequest
0 голосов
/ 06 апреля 2020

Попробуйте использовать BitmapFactory.decodeByteArray для создания растрового изображения и назначения в ImageView.

Исходный файл представляет собой строку типа Int, например, «77 78 255 0 ...»

Следующий код предназначен для преобразования строки в ByteArray:

fun serialize(imageDataString: String): ByteArray {
    val imageDataArray = imageDataString.split(" ").toTypedArray()
    val bDataArray = ByteArray(imageDataArray.size)
    for (i in imageDataArray.indices) {
        val optionalIntValue = imageDataArray[i].toIntOrNull()
        if(optionalIntValue != null) {
            bDataArray[i] = optionalIntValue.toByte()
        }
    }
    return bDataArray
}

Но это не сработало и показывало ноль после применения преобразованного byteArray в BitmapFactory.decodeByteArray

Работает нормально, применяя аналогичные логи c в IOS

let array = imageData.description.split(separator: " ")                                
var imageBytes : [UInt8] = []                
array.forEach({ (substringData) in                    
   let stringData = String(substringData)                    
   if let intData = UInt8(stringData) {                        
       imageBytes.append(intData)                    
   }                
})
                
let parsedImageData = NSData(bytes: imageBytes, length: imageBytes.count)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...