Android 从相机捕获图像并存储在数据库中
我想将图像存储到SQLite数据库中,该数据库是从照相机捕获的。这是我的代码,用于在我构造将图像存储到数据库中之后从照相机捕获图像Android 从相机捕获图像并存储在数据库中,android,Android,我想将图像存储到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_CA
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);
}
}
您必须使用“blob”来存储图像(位图)
使用以下命令插入数据:
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 ;
}
将图像存储到数据库中不是一个好主意,只需将其存储到外部存储器,并可能将链接保存到数据库中即可 关于数据存储的好教程: 然后根据需要保存数据库的路径: 或者直接进入共享首选项:
将图像存储到数据库中不是一个好主意,只需将其存储到外部存储器,并可能将链接保存到数据库中…@mindsonic ok..我同意你的看法..但你能帮我解决如何将图像存储到外部存储器中的问题吗?我可以使用“contentvalue”对象插入此数据吗..以及如何。。??
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 ;
}