压缩位图到字符串android

时间:2013-06-09 09:36:01

标签: android bitmap base64 storage encode

嗨,伙计们,当我将图像编码为位图,然后通过互联网使用工具解码编码图像进行比较时,我遇到了问题,但是没有给我相同的解码,也无法找出原因。

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);

1 个答案:

答案 0 :(得分:0)

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

编码

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); 
}