2016-06-22 1 views
0

私はAndroidアプリを開発しています。私のアプリでは、ビットマップを使って作業しています。私はビットマップをバイト配列に変換しています。その後、バイト配列を文字列に変換します。何らかの理由でそれをする必要があります。ビットマップをバイト配列に変換しています。文字列へのバイト配列も変換されます。その後、その変換された文字列を処理するときに問題が発生します。私はその文字列をバイト配列に変換しています。その後、そのバイト配列をビットマップに変換し直します。しかし、ビットマップは常にnullです。以下の私のコードを見てください。 ビットマップをbytearrayに変換して文字列に変換し、ビットマップに戻すことは常にAndroidではnullです。

この

は、バイト配列にビットマップを変換する私の機能である

public static byte[] ConvertBitmapToByteArray(Bitmap bitmap) 
    { 
     if(bitmap==null) 
     { 
      return null; 
     } 
     else{ 
      ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
      bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); 
      byte[] byteArray = stream.toByteArray(); 

      return byteArray; 
     } 
} 

これは、ビットマップにバイト配列に変換する機能がある

public static Bitmap ConvertByteArarysToBitmap(byte[] byteArray) 
    { 
     if(byteArray!=null) 
     { 
      return BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); 
     } 
     else{ 
      return null; 
     } 
} 

これらは私が

byte[] byteArray = Helper.ConvertBitmapToByteArray(Bitmap bitmap); 
//convert byte array to string 
String imageString = new String(byteArray,"UTF-8"); 
//I convert that string back to byte array 
byte[] reconvertedByteArray = imageString.getBytes("UTF-8"); 
Bitmap reconvertedBitmap = Helper.ConvertByteArarysToBitmap(reconvertedByteArray); 
を変換しています手順です

私のコードでは、最後のreconvertedBitmapは常にnullです。私のコードで何が間違っていますか?バイト配列を文字列に変換し、その文字列をバイト配列に変換する正しい方法は何ですか?私のコードには何がありませんか?

+0

あなたはbase64エンコードを使用し、文字列にバイトを取得する必要がある場合。 https://developer.android.com/reference/android/util/Base64.html – dharms

+0

これは機能します。ご協力ありがとうございました。 –

+0

回答をアップロードできますか?私はそれをupvoteしたいと思います。 –

答えて

2

byte[]Stringに正しく変換するには、Base64.encodeToString()を使用してください。

Documentation

関連する問題