我正在使用此代码压缩图像
imageText=encodeToBase64(bitmap, Bitmap.CompressFormat.PNG,100);
但是当我将这个图像存储到我的数据库和属性类型blobmedium中时,显示(加载)图像需要花费太多时间。
即使我的原始图像大小为32 Kb,它也会在数据库中存储为259 Kb。
当我在数据库中使用tinyblob或blob类型作为图像属性时,它会存储值,但不会在UI中显示任何结果。
如何减小图像的大小以使其适合tinyblobb或blob?
这样我就可以成功存储和获取图像。
答案 0 :(得分:0)
使用以下代码压缩图像:
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
// call to base64 image conversion method:
String encodeToBase64 = bitmapToBase64(thumbnail);
然后将其编码为base64格式:
private String bitmapToBase64(Bitmap bmp)
{
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream .toByteArray();
return Base64.encodeToString(byteArray, Base64.DEFAULT);
}
请注意:BLOB
最多可以为65535个字节。如果您需要更多考虑使用MEDIUMBLOB
表示16777215字节或LONGBLOB
表示4294967295字节