0

大家好,当我将图像编码为位图然后通过互联网使用工具与解码编码图像进行比较时,我遇到了一个问题,但没有给我相同的解码并且无法弄清楚原因。

String path = "/sdcard/bluetooth/bluetooth.png"; 
Bitmap bitmap = BitmapFactory.decodeFile(path);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, bao);
byte [] ba = bao.toByteArray();
String ba1=Base64.encodeToString(ba,Base64.DEFAULT);
4

1 回答 1

1

我使用下面的编码和解码,它对我来说很好

编码

public static String encodeTobase64(Bitmap image)
{
  Bitmap immagex=image;
  ByteArrayOutputStream baos = new ByteArrayOutputStream();  
  immagex.compress(Bitmap.CompressFormat.JPEG, 100, baos);
  byte[] b = baos.toByteArray();
  String imageEncoded = Base64.encodeToString(b,Base64.DEFAULT);  
  Log.e("LOOK", imageEncoded);
  return imageEncoded;
}

尝试下面的解码并将生成的位图设置为 imageview 并检查原始位图。

解码。

public static Bitmap decodeBase64(String input) 
{
    byte[] decodedByte = Base64.decode(input, 0);
    return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length); 
}
于 2013-06-09T10:39:16.400 回答