- 浏览: 38464 次
- 性别:
文章分类
最新评论
1.创建数据库表的时候选择存图片的字段类型为blob
- StringBuffer createTableOfHistory = new StringBuffer();
- createTableOfHistory.append("CREATE TABLE "+某表名);
- createTableOfHistory.append(" ( _id INTEGER PRIMARY KEY AUTOINCREMENT ,");
- createTableOfHistory.append(该存图片的字段名+" BLOB ,");
- createTableOfHistory.append(其他字段名1+" TEXT ,");
- .......
- createTableOfHistory.append(其他字段名n+" TEXT );");//记得这里带个“;”封号
- db.execSQL(createTableOfHistory.toString());//执行该创表语句
StringBuffer createTableOfHistory = new StringBuffer(); createTableOfHistory.append("CREATE TABLE "+某表名); createTableOfHistory.append(" ( _id INTEGER PRIMARY KEY AUTOINCREMENT ,"); createTableOfHistory.append(该存图片的字段名+" BLOB ,"); createTableOfHistory.append(其他字段名1+" TEXT ,"); ....... createTableOfHistory.append(其他字段名n+" TEXT );");//记得这里带个“;”封号 db.execSQL(createTableOfHistory.toString());//执行该创表语句
2.存储数据
2.1将数据流转成数组的方法
- InputStream inputStream = getResources().openRawResource(R.drawable.icon);
- private static byte[] streamToBytes(InputStream is) {
- ByteArrayOutputStream os = new ByteArrayOutputStream(1024);
- byte[] buffer = new byte[1024];
- int len;
- try {
- while ((len = is.read(buffer)) >= 0) {
- os.write(buffer, 0, len);
- }
- } catch (java.io.IOException e) {
- }
- return os.toByteArray();
- }
InputStream inputStream = getResources().openRawResource(R.drawable.icon); private static byte[] streamToBytes(InputStream is) { ByteArrayOutputStream os = new ByteArrayOutputStream(1024); byte[] buffer = new byte[1024]; int len; try { while ((len = is.read(buffer)) >= 0) { os.write(buffer, 0, len); } } catch (java.io.IOException e) { } return os.toByteArray(); }
2.2.将Bitmap对象转换成数组的方法【包含从资源文件中获得图片对象Bitmap】
- Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
- private static byte[] bitmapToBytes(Bitmap bitmap){
- if (bitmap == null) {
- return null;
- }
- final ByteArrayOutputStream os = new ByteArrayOutputStream();
- // 将Bitmap压缩成PNG编码,质量为100%存储
- bitmap.compress(Bitmap.CompressFormat.PNG, 100, os);//除了PNG还有很多常见格式,如jpeg等。
- return os.toByteArray();
- }
- ContentValues values = new ContentValues();
- values.put(该存图片的字段名, readHistoryInfo.getBookIcon());
- values.put(其他字段名1, “2011-05-17”);
- ......
- return mSqliteDatabase.insert(表名, null, values);//插入数据
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon); private static byte[] bitmapToBytes(Bitmap bitmap){ if (bitmap == null) { return null; } final ByteArrayOutputStream os = new ByteArrayOutputStream(); // 将Bitmap压缩成PNG编码,质量为100%存储 bitmap.compress(Bitmap.CompressFormat.PNG, 100, os);//除了PNG还有很多常见格式,如jpeg等。 return os.toByteArray(); } ContentValues values = new ContentValues(); values.put(该存图片的字段名, readHistoryInfo.getBookIcon()); values.put(其他字段名1, “2011-05-17”); ...... return mSqliteDatabase.insert(表名, null, values);//插入数据
3.提取数据库中的数组数据并转换成Bitmap或DrawableBitmap对象【包含byte[] —> Bitmap】
某类对象m(该类是负责创表,删表,插入数据,删除数据的类).openOrCreateDB();//openOrCreateDB()也是该类的一个打开或创建数据库的方法。
- Cursor cursor = 某类对象m.getData(该存图片的字段名, null);
- if (cursor.moveToFirst()) {
- // byte[] —> Bitmap
- byte[] bytes = cursor.getBlob(cursor.getColumnIndex(该存图片的字段名));
- Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, null);
- BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap);
- }
Cursor cursor = 某类对象m.getData(该存图片的字段名, null); if (cursor.moveToFirst()) { // byte[] —> Bitmap byte[] bytes = cursor.getBlob(cursor.getColumnIndex(该存图片的字段名)); Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, null); BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap); }
4.Drawable —> Bitmap
- Bitmap bm = xxx; //xxx根据你的情况获取
- BitmapDrawable bd= new BitmapDrawable(bm);
- 提示:因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。
Bitmap bm = xxx; //xxx根据你的情况获取 BitmapDrawable bd= new BitmapDrawable(bm); 提示:因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。
5. Drawable —> Bitmap
- public static Bitmap drawableToBitmap(Drawable drawable) {
- Bitmap bitmap = Bitmap.createBitmap(
- drawable.getIntrinsicWidth(),
- drawable.getIntrinsicHeight(),
- drawable.getOpacity() != PixelFormat.OPAQUE ?
- Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565);
- return bitmap;
- }
public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap.createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565); return bitmap; }
or
- Drawable d=xxx; //xxx根据自己的情况获取drawable
- BitmapDrawable bd = (BitmapDrawable) d;
- Bitmap bm = bd.getBitmap();
Drawable d=xxx; //xxx根据自己的情况获取drawable BitmapDrawable bd = (BitmapDrawable) d; Bitmap bm = bd.getBitmap();
发表评论
-
MediaPlayer与SoundPool小结
2013-07-23 15:05 616http://blog.csdn.net/j67065/art ... -
为什么要将thread对象post到handler中执行呢?
2013-07-23 13:28 777http://www.cnblogs.com/sipher/a ... -
Android APK反编译详解(附图)
2012-10-11 14:19 907这段时间在学Android应用开发,在想既然是用Java开发的 ... -
Android Layout之三:RalativeLayout(一)
2012-05-09 10:28 1我们从RalativeLayout可以 ... -
android
2012-05-08 15:43 0afdsfsdafdsf -
android SDK升级连接不上服务器解决方案(SDK版本无法下载)
2012-04-06 13:24 961我离线安装ADT1.7,结果ADT版本太高,无法下载升级S ... -
android中的显示单位
2012-04-06 10:50 6611、px(像素) 一般HVGA代表320*480像素,这个用的 ... -
Android相对布局
2011-12-14 16:40 1210RelativeLayout布局 android: ... -
Android布局中ScrollView与ListView的冲突
2012-05-07 14:23 1453亲~本店毛衣质量上乘,由厂家直接进货,色泽明亮、手感丰满,价格 ... -
图片宽度尺寸输出为500px的PX
2011-12-01 11:05 1681亲~本店毛衣质量上乘,由厂家直接进货,色泽明亮、手感丰满,价格 ... -
android: layout_alignParentRight android_paddingRight
2011-12-01 11:03 1142亲~本店毛衣质量上乘,由厂家直接进货,色泽明亮、手感丰满,价格 ... -
android:paddingLeft与android:layout_marginLeft的区别
2011-12-01 10:58 1546亲~本店毛衣质量上乘,由厂家直接进货,色泽明亮、手感丰满,价格 ... -
Android 中颜色对应的代码集合
2011-12-01 10:55 949亲~本店毛衣质量上乘,由厂家直接进货,色泽明亮、手感丰满,价格 ... -
Android 五大布局
2011-12-01 10:52 675http://shop69104873.taobao.com/ ...
相关推荐
在Android开发中,图片资源的处理是常见的需求之一,尤其涉及到不同格式间的转换,如Drawable、Bitmap、byte数组以及灰度图像的转换。这些转换在实际应用中具有重要意义,不仅能够优化内存使用,还能实现图像的高效...
本文将详细介绍`Drawable`、`Bitmap`及`byte[]`三者之间的转换方法,并提供具体的实现代码。 #### 1. Drawable转Bitmap `Drawable`是Android中用于表示图像的一种抽象类,它并不直接表示图像数据,而是通过不同的...
在Android开发中,图片资源的处理是常见的需求之一,涉及到多种数据类型之间的转换,包括`Drawable`、`Bitmap`、`byte[]`等。本文将详细介绍这些类型之间的转换方法,以及如何实现灰度图像的转换。 ### 1. `...
在Android开发中,处理图像数据时,我们经常需要在Drawable、Bitmap、InputStream和byte数组之间进行转换。这些类型的转换在不同的场景下具有重要的作用,例如从网络加载图片、存储图片到本地或者显示在ImageView上...
在VC(Visual C++)环境下,Bitmap对象是用于表示图像的一种常见数据结构,而`Byte[]`(字节数组)则常用于数据传输或存储。本篇文章将详细解释如何在VC中将Bitmap对象转换为Byte数组。 首先,理解Bitmap对象。...
本篇将详细介绍如何在Android中进行Drawable到Bitmap以及Bitmap到Drawable的转换。 首先,Drawable是一个抽象的概念,它代表了Android系统中的可绘制对象,包括Bitmap、Shape、LevelList、NinePatch等。而Bitmap则...
在Android开发中,Bitmap是用于显示图像的基本类,它是一个位图对象,通常用来加载、显示和处理图片。然而,由于Bitmap对象占用大量的内存,直接加载大图片可能会导致内存溢出(Out Of Memory,OOM)问题。因此,...
在Android开发中,Bitmap是用于表示图像数据的一种对象,它在内存中占用较大空间,因此在处理图片时,我们有时需要将其转换为byte数组(byte[]),以便于存储、传输或者在网络流中使用。这个过程涉及到图像数据的...
在C#编程语言中,将byte数组转换为8bit灰度图像是一项常见且重要的技能,尤其是在处理图像数据或开发图像处理应用时。本文将详细解析这一过程,包括关键概念、技术细节以及具体实现步骤。 ### 关键概念 1. **8bit...
本文将详细介绍如何在Android中实现`Drawable`与`Bitmap`之间的相互转换,并探讨这两种类型的图像数据在实际应用中的应用场景。 #### 一、Drawable简介 `Drawable`是Android中用于表示图形的一种抽象类,它可以是...
在处理图像时,我们可能会遇到需要在不同的数据类型之间转换的情况,比如从Bitmap到Stream,再到byte数组,最后再还原回Bitmap。这样的转换在上传图片、存储图片数据或在网络中传输时非常常见。本篇文章将详细介绍...
Bitmap是Android系统中用于存储和处理图像数据的重要类,它是一个位图,即像素的二维数组,常用于显示和操作图像。BitmapFactory是用于解析图片资源并生成Bitmap对象的工具类,例如`BitmapFactory.decodeResource()`...
在Android开发中,处理图像数据是一项常见的任务,而Bitmap和String是两个核心的数据类型,分别代表位图图像和文本字符串。Bitmap对象用于存储和显示图像,而String则常用于保存和传输文本信息。本篇文章将深入探讨...
在Android平台上,绘制图形是一项基本任务,涉及到多个关键类,如Bitmap、Drawable和Canvas,以及Paint。这些类共同构成了Android图形系统的核心,使得开发者能够创建丰富的用户界面和自定义视图。 首先,Bitmap是...
Bitmap图像转换为H264是一项在数字视频处理和多媒体应用中常见的技术。Bitmap(BMP)是一种无损的图像文件格式,它以原始的像素数据存储图像,占用的存储空间较大,不适合在网络传输和存储中使用。而H264(也称为AVC...
在VC中使用Halcon进行图像处理,首先需掌握如何读取图像文件以及获取图像的内存指针。`read_image()` 和 `get_image_pointer1()` 是两个关键函数,它们分别用于读取图像文件和获取指向图像数据的内存指针。在Halcon...
android平台jpeg数据流转换成rgb直接显示的so库 使用方式: byte[] jpegRaw = V4L2Camera.decode(dataBuf, ret); rgb2Buffer(jpegRaw, WIDTH, HEIGHT, rgbBuffer); ByteBuffer jpegBuffer = ByteBuffer.wrap(rgb...
在Android开发中,有时我们需要将Bitmap对象转换成不同的图片格式,比如BMP。BMP(Bitmap File Format)是一种常见的位图文件格式,但它并不像JPEG或PNG那样被Android SDK直接支持。本文将详细介绍如何在Android中将...
Bitmap是Android平台中用于处理图像的核心类,它用于表示位图图像数据。下面是对Bitmap用法的详细总结: 1. **Drawable转换为Bitmap**: 当我们需要将一个Drawable对象(如从XML布局文件中加载的图像)转换为...