博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android:保存图片到Sqlite数据库
阅读量:5963 次
发布时间:2019-06-19

本文共 2027 字,大约阅读时间需要 6 分钟。

引用:

原理:图片是二进制文件,所以使用blob类型,将图片转换成字节数组,存储到数据库中。

方法一:

 

1 public void saveIcon(Bitmap icon) {   2         if (icon == null) {   3             return;   4         }   5         // 最终图标要保存到浏览器的内部数据库中,系统程序均保存为SQLite格式,Browser也不例外,因为图片是二进制的所以使用字节数组存储数据库的   6         // BLOB类型   7         final ByteArrayOutputStream os = new ByteArrayOutputStream();   8         // 将Bitmap压缩成PNG编码,质量为100%存储           9         icon.compress(Bitmap.CompressFormat.PNG, 100, os);   10         // 构造SQLite的Content对象,这里也可以使用raw  11         ContentValues values = new ContentValues();   12         // 写入数据库的Browser.BookmarkColumns.TOUCH_ICON字段  13         values.put(Browser.BookmarkColumns.TOUCH_ICON, os.toByteArray());   14           15         DBUtil.update(....);//调用更新或者插入到数据库的方法  16     }

方法二:

1 import android.provider.MediaStore.Images.Media;   2 import android.content.ContentValues;   3 import java.io.OutputStream;   4 // Save the name and description of an image in a ContentValues map.     5 ContentValues values = new ContentValues(3);   6 values.put(Media.DISPLAY_NAME, "road_trip_1");   7 values.put(Media.DESCRIPTION, "Day 1, trip to Los Angeles");   8 values.put(Media.MIME_TYPE, "image/jpeg");   9 // Add a new record without the bitmap, but with the values just set.  10 // insert() returns the URI of the new record.  11 Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values);  12 // Now get a handle to the file for that record, and save the data into it.  13 // Here, sourceBitmap is a Bitmap object representing the file to save to the database.  14 try {  15     OutputStream outStream = getContentResolver().openOutputStream(uri);  16     sourceBitmap.compress(Bitmap.CompressFormat.JPEG, 50, outStream);  17     outStream.close();  18 } catch (Exception e) {  19     Log.e(TAG, "exception while writing image", e);  20 }

从数据库中读取:

1 byte[] blob = cur.getBlob(cur.getColumnIndex(KEY_IMG));  2 Bitmap bmp = BitmapFactory.decodeByteArray(blob, 0, blob.length);

 

转载于:https://www.cnblogs.com/masonchi/p/3515726.html

你可能感兴趣的文章
phpstrom for mac 默认快捷键
查看>>
ES Java API_基于search template实现按品牌分页查询模板
查看>>
安全与漏洞工具篇
查看>>
如何用jquery获取input输入框中的值?
查看>>
对datatable的行进行数据填充、增、删、改
查看>>
Java记录 -80- 深入理解枚举(Enums)
查看>>
Spark On K8s源代码解析
查看>>
checkUser----dede
查看>>
Ngnix的日志管理和用定时任务完成日志切割
查看>>
IOS控件 Tableview 下拉刷新,加载数据
查看>>
log4j 2使用教程
查看>>
centos 安装pip
查看>>
我的友情链接
查看>>
rhel5下ORACLE 10g之ASM创建
查看>>
Java基础学习总结(19)——Java环境变量配置
查看>>
关于Notice: Undefined index:问题解决方法
查看>>
MyBatis学习总结(9)——使用MyBatis Generator自动创建代码
查看>>
MyBatis学习总结(六)——调用存储过程
查看>>
利用rrdcached优化ganglia IO
查看>>
开源史上最成功的8个开源产品
查看>>