2016-06-22 69 views
0

我正在开发Android应用程序。在我的应用程序中,我正在使用位图。我正在做的是我将位图转换为字节数组。然后我将字节数组转换为字符串。我需要做一些理由。将位图转换为字节数组正在工作。字节数组到字符串也被转换。然后问题开始,当我使用该转换的字符串。我将该字符串转换回字节数组。然后我将该字节数组转换回位图。但是位图总是空的。请参阅下面的代码。将位图转换为bytearray转换为字符串然后转换回位图在Android中始终为空

这是我的功能转换位为字节数组

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始终为空。我的代码有什么问题?将字节数组转换为字符串并将该字符串转换回字节数组的正确方法是什么?我的代码中缺少什么?

+0

如果你需要得到字节转换成字符串,用base64编码。 https://developer.android.com/reference/android/util/Base64.html – dharms

+0

它的工作原理。感谢您的支持。 –

+0

你可以上传答案吗?我想加入它。 –

回答

2

要正确地将byte[]转换为String,应该使用Base64.encodeToString()

Documentation

相关问题