2017-08-17 15 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にはcontentがあり、imageBytes.sizeは60000を超えています。私はswiftで使用しているのと同じ文字列を変更せずにイメージを変換するので、文字列は問題ではないと確信しています。

答えて

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

すべてです。基本64文字列を最初にバイト配列にデコードするだけです。

+0

このソリューションは、kotlin-jvmでのみ動作します。 kotlin-jsやnativeでは動作しません) –

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; 
    }