有時會遇到想將 Picture 儲存到 SQLite Blob 欄位內,
其中原理就是: 資料必須先轉換成 byte[], 才能儲存到 Blob 欄位, 如下圖 :
範例 1: 如何將 Bitmap 寫入到 SQLite Blob 欄位
程式碼
// 1.先將 Bitmap 轉換成 byte[] ByteArrayOutputStream bos = new ByteArrayOutputStream(); vBitmap.compress( Bitmap.CompressFormat.JPEG, 100, bos ); byte[] vByteArray = bos.toByteArray(); // 2.透過 byte[] 儲存到 blob 欄位 ContentValues cv = new ContentValues(); cv.put( "blobColumnName", vByteArray ); // 3.db 儲存 SQLiteDatabase db = this.getWritableDatabase(); long cnt = db.insert( "tableName", null, cv ); long cnt = db.update( "tableName", cv, vWhereCondition, null );
範例 2: 如何讀取 SQLite Blob 欄位資料, 轉換成 Bitmap
程式碼
// 1.先透過 DB Cursor 讀取 Blob 欄位資料, 存放到 bytep[] byte[] vByteArray = vCursor.getBlob( blob_column_index ); // 2.將 byte[] 轉換成 Bitmap Bitmap vBitmap = BitmapFactory.decodeByteArray( vByteArray , 0 , vByteArray.length );