簡體   English   中英

從相機捕獲圖像並將其存儲在數據庫中

[英]capture image from camera and store in database

我想將圖像存儲到從相機捕獲的SQLite數據庫中。這是我構造將圖像存儲到數據庫后的代碼,用於從相機捕獲圖像。

public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.photobtn:
        i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(i, camaradata);
        break;
    case R.id.submit:
        break;
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        Bundle extras = data.getExtras();
        bmp = (Bitmap) extras.get("data");
        imageview.setImageBitmap(bmp);
    }
}

您必須使用“斑點”來存儲圖像(位圖)。

db.execSQL("CREATE TABLE Funny(picid TEXT,myimage BLOB,gender TEXT,country TEXT)");

使用此插入數據:

public void insert(String string,byte[] bytes,String gender,String country) {
 ContentValues cv=new ContentValues();
 cv.put("picid",string);
 cv.put("myimage",bytes);
 cv.put("gender", gender);
 cv.put("country", country);
 getWritableDatabase().insert("Funny","gender", cv);
 Log.e("inserted", "inserted");
 }

例如:將圖像存儲到數據庫中

public void insertImg(int id , Bitmap img ) {   


    byte[] data = getBitmapAsByteArray(img); // this is a function

    db.insert("01",data,"male","Pakistan");

}

 public static byte[] getBitmapAsByteArray(Bitmap bitmap) {
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.PNG, 0, outputStream);       
    return outputStream.toByteArray();
}

並從數據庫中檢索圖像

public Bitmap getImage(int i){

    String qu = "select myimage from Funny where picid=" + i ;
    Cursor cur = db.rawQuery(qu, null);

    if (cur.moveToFirst()){
        byte[] imgByte = cur.getBlob(0);
        cur.close();
        return BitmapFactory.decodeByteArray(imgByte, 0, imgByte.length);
    }
    if (cur != null && !cur.isClosed()) {
        cur.close();
    }       

    return null ;
} 

將圖像存儲到數據庫中不是一個好主意,只需將其存儲到外部存儲中,然后將鏈接保存到數據庫中即可。

關於數據存儲的好教程: http : //developer.android.com/training/basics/data-storage/files.html

然后在必要時保存到數據庫的路徑: http : //developer.android.com/training/basics/data-storage/databases.html

或簡單地進入共享首選項: http : //developer.android.com/training/basics/data-storage/shared-preferences.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM