在上面寻求建议。 希望创建一个 SQLlite 数据库,其中每行数据主要是字符串,但我还想保存从手机拍摄的图像。
是否建议或可能保存位图图像的编码 base 64 字符串,并在调用数据行时将其转换回图像?
我还在某处看到有一种blob列类型可以保存图像二进制数据。
提前致谢!
干杯
最佳答案
是的,这绝对是可行的,但您也可以使用 Blob(请参阅这篇文章 How to store and retrieve a byte array (image data) to and from a SQLite database?)。不过,如果您想将图像存储为 Base64 字符串,这很容易做到,只需使用 Apache 库将原始图像 bytes[]
编码为 Base64 字符串
.
这是引用:Apache Base 64
首先,您需要使用 public static String encodeBase64String(byte[] binaryData)
对图像 bytes[]
进行编码。
然后,您可以将 Base64
字符串存储到您的数据库中。
当你去检索图像时,只需使用public static byte[] decodeBase64(String base64Data)
将 String
转换回 bytes[]
,并使用 BitmapFactory
获取 Bitmap
。
编辑:
尝试了一下,由于某种原因在添加核心 commons-codec-1.9.jar
之后,我得到了一个 java.lang.NoSuchMethodError
。如果这个问题不是我的构建特有的,它与:
String base64string = new String(Base64.encodeBase64(drawable), "UTF-8");
关于android - 将图像保存和检索到数据库的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21048506/