在Android中,将位图转换为bytearray再转换回字符串始终为空
我正在开发一个Android应用程序。在我的应用程序中,我正在使用位图。我正在做的是将位图转换为字节数组。然后我将字节数组转换为字符串。我需要做这件事是有原因的。正在将位图转换为字节数组。字节数组到字符串也被转换。然后,当我使用转换后的字符串时,问题就开始了。我正在将该字符串转换回字节数组。然后我将字节数组转换回位图。但位图总是空的 这是我将位图转换为字节数组的函数在Android中,将位图转换为bytearray再转换回字符串始终为空,android,arrays,bitmap,byte,Android,Arrays,Bitmap,Byte,我正在开发一个Android应用程序。在我的应用程序中,我正在使用位图。我正在做的是将位图转换为字节数组。然后我将字节数组转换为字符串。我需要做这件事是有原因的。正在将位图转换为字节数组。字节数组到字符串也被转换。然后,当我使用转换后的字符串时,问题就开始了。我正在将该字符串转换回字节数组。然后我将字节数组转换回位图。但位图总是空的 这是我将位图转换为字节数组的函数 public static byte[] ConvertBitmapToByteArray(Bitmap bitmap)
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);
在我的代码中,最后一个重新转换的位图总是空的。我的代码有什么问题?将字节数组转换为字符串,然后将该字符串转换回字节数组的正确方法是什么。我的代码中缺少什么 要将
字节[]
正确转换为字符串
,应使用Base64.encodeToString()
要将
字节[]
正确转换为字符串
,应使用Base64.encodeToString()