私は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です。私のコードで何が間違っていますか?バイト配列を文字列に変換し、その文字列をバイト配列に変換する正しい方法は何ですか?私のコードには何がありませんか?
あなたはbase64エンコードを使用し、文字列にバイトを取得する必要がある場合。 https://developer.android.com/reference/android/util/Base64.html – dharms
これは機能します。ご協力ありがとうございました。 –
回答をアップロードできますか?私はそれをupvoteしたいと思います。 –