2017-08-17 64 views
2

我是Kotlin的新手,我似乎無法完成這一項。我得到一個base64String,我需要一個圖像。字符串到位圖Kotlin

我所做的:

val imageBytes = string.toByteArray(). // string is the base64image 
val image = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.size) 

問題是,當我嘗試訪問image,我得到的日誌中SkAndroidCodec::NewFromStream returned null消息。我想在一個有回報的方法中使用它,但它在return image上保持崩潰。

如何正確轉換它?

我檢查過並且字符串不爲空,imageBytes有內容,imageBytes.size超過了60000.我在swift中使用了相同的字符串,它在沒有任何修改的情況下轉換圖像,所以我確信字符串不是問題。

回答

3
val imageBytes = Base64.decode(string, 0) 
val image = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.size) 

這是所有。您只需將base 64字符串解碼爲一個字節數組。

+0

保重,這個解決方案只適用於kotlin-jvm。它不適用於kotlin-js或本地;) –

0

使用本:

try { 
    val imageBytes =Base64.decode(string,0); 
    val image=BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.size); 
return image; 
} catch(Exception e) { 
     e.getMessage(); 
     return null; 
    }