如何在数据库中保存位图?

Mon*_*ali 9 android

我想知道如何在数据库中保存位图.我在db中创建了表:

@Override
public void onCreate(SQLiteDatabase db)
{
    db.execSQL("CREATE TABLE " + TABLE_NAME + " (_id INTEGER PRIMARY KEY AUTOINCREMENT,image BLOB)");         
}    
Run Code Online (Sandbox Code Playgroud)

我的问题是我无法插入图像.请告诉我我需要插入图像的格式.

Pun*_*han 14

如果您有位图图像,那么您可以执行以下操作.

Bitmap photo = <Your image>
ByteArrayOutputStream bos = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.PNG, 100, bos);
byte[] bArray = bos.toByteArray();
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用以下方式将数据保存在表中.

db = YourDBHelper.getInstance(ctx).getWritableDatabase();    
ContentValues values = new ContentValues();         
values.put("image", bArray);            
db.insert(TABLE_NAME , null, values);
Run Code Online (Sandbox Code Playgroud)


DAr*_*rkO 9

如果你想这样做,你需要使用blob.但为什么你要这样做..我不会将图像存储到数据库中.最好将图像存储在SD卡上,然后将其路径存储到数据库中.通常数据库安装在手机内存上,只会填满手机内存......