如何将图片存入sqlite数据库

如何将图片存入sqlite数据库,第1张

如何将图片存入sqlite数据库

1.将图片转化为byte数组

2.将byte数组放入contentvalues

3.执行数据库的insert *** 作,将contentvalues里面的值存入sqlite

代码大致如下://转换

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.icon)

0202020202020202 ByteArrayOutputStream baos = new ByteArrayOutputStream()02020202

0202020202020202 bm.compress(Bitmap.CompressFormat.PNG, 100, baos)02020202

0202020202020202 byte[] result = baos.toByteArray()0202//装入

ContentValues values = new ContentValues()

values.put("image", result)//插入数据库

图片等二进制媒体数据可以保存到BLOB类型的字段里,例子:

http://blog.csdn.net/zhouyongyang621/archive/2010/03/26/5418586.aspx

但是一般不推荐这么做,因为如果保存大量媒体数据那么数据库的大小会激增,导致数据库访问性能下降。还是把图保存到文件里,然后在数据库里加个字段引用文件路径吧。

建议你尽可能把图保存到SD卡上(/sdcard),如果没有SD卡就保存到应用程序的私有目录里(/data/data/packagename/)

Java代码

public void saveIcon(Bitmap icon) {

if (icon == null) {

return

}

// 最终图标要保存到浏览器的内部数据库中,系统程序均保存为SQLite格式,Browser也不例外,因为图片是二进制的所以使用字节数组存储数据库的

// BLOB类型

final ByteArrayOutputStream os = new ByteArrayOutputStream()

// 将Bitmap压缩成PNG编码,质量为100%存储

icon.compress(Bitmap.CompressFormat.PNG, 100, os)

// 构造SQLite的Content对象,这里也可以使用

raw ContentValues values = new ContentValues()

// 写入数据库的

Browser.BookmarkColumns.TOUCH_ICON字段 values.put(Browser.BookmarkColumns.TOUCH_ICON, os.toByteArray())

DBUtil.update(....)

//调用更新或者插入到数据库的方法

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11217435.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存