我需要存储从图库中选择的数据库图像。我的想法是将Bitmap转换为String并将String存储在数据库中,但现在我正在阅读其他帖子:saving image clicked from camera or loaded from gallery in database and retrieving it并建议使用字节数组。 有人可以解释我的差异,哪个想法更好?也许别的什么? 我刚开始,但我想写得正确。
答案 0 :(得分:0)
将图像存储为byte[]
字段中BLOB
的标准方法。另一种可能性 - 带来一些开销 - 是存储一个Base64
编码的字符串。
答案 1 :(得分:0)
您可以使用Base64 Android类:
String encodedImage = Base64.encodeToString(byteArrayImage, Base64.DEFAULT);
您必须将图像转换为字节数组。这是一个例子:
Bitmap bm = BitmapFactory.decodeFile("/path/to/image.jpg");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap object
byte[] b = baos.toByteArray();
如果您正在使用较旧的SDK库(因为您希望它可以在具有较旧版本操作系统的手机上运行),您将无法打包Base64类(因为它刚刚在API中出现)等级8又称版本2.2)。
查看本文以获取解决方法:
http://androidcodemonkey.blogspot.com/2010/03/how-to-base64-encode-decode-android.html