我正在处理Base64
以及Bitmap
图片格式。你可以建议我从Url加载时哪个更好用吗?
答案 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;
}
}