从Url加载图片时哪个更好?

时间:2016-05-21 09:01:32

标签: android url bitmap base64

我正在处理Base64以及Bitmap图片格式。你可以建议我从Url加载时哪个更好用吗?

1 个答案:

答案 0 :(得分:0)

在位图和base64格式之间进行转换并不是太糟糕,并且根据您尝试做的事情,这可能非常有用。如果您绝对不想将图像数据存储在文件系统中,则可以将base64字符串存储在数据库中。

Base64是一种将所有256字节值映射到64个可打印字节值的算法(可打印意味着这些字节以US-ASCII编码打印)。这是通过将3个输入字节打包到4个输出字节来完成的。当仍然需要传输一些二进制数据时,Base64通常用于基于文本的数据交换协议。最着名的例子是编码电子邮件附件。

在android中,通常我们以string的形式发送和接收数据。如果我们在Bitmap表单中有图像,那么我们就不能将它发送到server.A需要传递位图的简单函数,它将返回一个字符串

 /**
   * @param bitmap
   * @return converting bitmap and return a string
   */
   public String BitMapToString(Bitmap bitmap){
        ByteArrayOutputStream baos=new  ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG,100, baos);
        byte [] b=baos.toByteArray();
        String temp=Base64.encodeToString(b, Base64.DEFAULT);
        return temp;
  }

以下是将字符串转换为位图的相反过程,但字符串应为Base64编码

 /**
   * @param encodedString
   * @return bitmap (from given string)
   */
  public Bitmap StringToBitMap(String encodedString){
 try{
   byte [] encodeByte=Base64.decode(encodedString,Base64.DEFAULT);
   Bitmap bitmap=BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
   return bitmap;
 }catch(Exception e){
   e.getMessage();
   return null;
 }
  }