servlet访问数据库(MySql)获取一张图片的字节数组byte[]data.
将字节数组转换为String类型,
说一下为什么要转换为String呢?
JSON所能够发送的数据类型
1、Number 在JavaScript中的双精度浮点格式
2、String 双引号的反斜杠转义的Unicode
3、Boolean true 或 false
4、Array 值的有序序列
5、Value 它可以是一个字符串,一个数字,真的还是假(true/false),空(null )等
6、Object 无序集合键值对
7、Whitespace 可以使用任何一对中的令牌
8、null empty
也就是说JSON不能发送一个自定义的类型,只能发送上面所写的.而图片所能获取的只有byte[]类型,所以需要将
byte[]转换为String发送,
问题再于,将byte[] data1--->String 再 String--->byte[]data2 之后
发现data1 != data2. 会变大,主要是因为String获取地址长度变长
public String bitmaptoString(Bitmap bitmap) {
// 将Bitmap转换成字符串
String string = null;
ByteArrayOutputStream bStream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 100, bStream);
byte[] bytes = bStream.toByteArray();
string = Base64.encodeToString(bytes, Base64.DEFAULT);
return string;
}
public Bitmap stringtoBitmap(String string) {
// 将字符串转换成Bitmap类型
Bitmap bitmap = null;
try {
byte[] bitmapArray;
bitmapArray = Base64.decode(string, Base64.DEFAULT);
bitmap = BitmapFactory.decodeByteArray(bitmapArray, 0,
bitmapArray.length);
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;
}