android - 将图像保存和检索到数据库的最佳方法

标签 android image sqlite

在上面寻求建议。 希望创建一个 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/

相关文章:

android - 如何在dagger 2中使子组件单例化?

java - 如何将路径放入变量而不出现空异常

ios - 在 IOS 应用程序中解压 NOT IN SQL 查询中的值

Android:从SQlite获取单行,空指针异常

Android:将图像附加到电子邮件 Intent - 错误

Android无法保存到数组

php - 从我网站的另一部分获取 wordpress 特色图片 url

php - 如何使用 PHP 的 GD 库对图像执行缝线雕刻?

python - 找不到sqlite3数据库在哪里

java - Context.startForegroundService() 然后没有调用 Service.Foreground