PDA

View Full Version : ذخیره عکس در پایگاه sqlite



آسمان زندگی
شنبه 16 آذر 1392, 18:43 عصر
سلام دوستان من می خوام یک عکس رو در پایگاه ذخیره کنم دو هفته هست روش وقت می ذارم اما به نتیجه ای نمی رسم توی نت هم خیلی سرچ کردم کسی می تونه تکه کدی برام بذاره کد من به صورت زیر هست:درواقع می خوام با توجه به اینکه کاربر چه radiobuttonای رو انتخاب می کنه یه عکس خاص توی پایگاه وارد بشه مثلا

case R.id.delivery:



Bitmap b=BitmapFactory.decodeResource(getResources(), R.drawable.love);
bos=new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG, 100, bos);
img=bos.toByteArray(); ()

break;
و خواندن از پایگاه:

byte[] imageByteArray=c.getBlob(c.getColumnIndex("image"));
//c.close();


ByteArrayInputStream imageStream = new ByteArrayInputStream(imageByteArray);
Bitmap theImage = BitmapFactory.decodeStream(imageStream);

icon.setImageBitmap(BitmapFactory.decodeByteArray( imageByteArray, 0, imageByteArray.length));


لطفا اگر کسی می تونه کمکم کنه خیلی به کمک نیاز دارم

shahin bahari
شنبه 16 آذر 1392, 18:52 عصر
به جای ذخیره کل عکس توی دیتابیس عکس رو توی یه فولدر ذخیره کنید و آدرس اون رو توی دیتابیس ذخیره کنید. دلیل اینکه کدی هم پیدا نکردید هم همین بوده که اکثرا از این روش استفاده میکنند که هم سریع تر هست و هم ساده تر!

shs1377
شنبه 16 آذر 1392, 18:56 عصر
اگه میشه توضیح بیشتری بدید یا یک تکه کد بگذارید

rubiks.kde
شنبه 16 آذر 1392, 20:09 عصر
نوع داده پایگاه داده رو blob بزارید و از توابع زیر استفاده کنید.

private byte[] DrawableTObyte(Drawable dw){
try{
//TODO Fix It
if(dw == null)
dw = context.getResources().getDrawable(R.drawable.defu lt_image);

BitmapDrawable bitDW = (BitmapDrawable)dw;
Bitmap bit = bitDW.getBitmap();
ByteArrayOutputStream out = new ByteArrayOutputStream();
bit.compress(Bitmap.CompressFormat.PNG, 90, out);
return out.toByteArray();

}catch (Exception e) {
byte [] s = null;
return s;
}
}

private Drawable ByteTODrawable(byte[] img){
try{
Drawable d;

if(img == null)
d = context.getResources().getDrawable(R.drawable.defu lt_image);

Bitmap bm = BitmapFactory.decodeByteArray(img, 0, img.length);
d = new BitmapDrawable(context.getResources(),bm);

return d;
}catch (Exception e) {
Drawable d = null;
return d;
}
}