如何从SQLite数据库导入图片?

时间:2012-08-12 01:35:49

标签: android android-sqlite

我正在做一个关于联系人的项目为此,我需要在SQlite DataBase中导入/存储图片。根据我的阅读,我必须将图片转换为不同的格式(在这个假设中可能是错误的)然后存储它在数据库中。你能告诉我怎么做,或者我可以用不同的方法做到这一点吗?两者都对我有帮助,所以我可以学到更多。

谢谢,

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

取决于您想要从哪里获取图片,无论是来自互联网还是来自SD卡。但是,我假设你可以得到它并将其转换为位图。

Bitmap bm = (get it from anywhere);
ByteArrayOutputStream blob = new ByteArrayOutputStream();
//the below line is used if you like to scale it down to store it into the database
bm = Bitmap.createScaledBitmap(bm, width, height, false);
//then put it into a byte array to store it in the database
bm.compress(CompressFormat.JPEG, 100, blob);
// method call to database
dbClass.addPicture(blob.toByteArray());

数据库中的表定义:

SQLiteDatabase.execSQL("CREATE TABLE IF NOT EXISTS Pictures (id integer primary key autoincrement, pic blob not null ");

数据库类中的addPicture方法如下

public void addPicture(byte[] picture){
        db = this.getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put("pic", picture);
    db.insert("Pictures ", null, cv);
}

我希望有帮助