بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ذخیره تصویر در دیتابیس

مدیریت گفتگو
iSheykhi 12 سال پیش
آخرین تغییر: 12 سال پیش

برای ذخیره تصویر در دیتابیس و نمایش اون کد زیر رو به دست آوردم

 // ======== to store a image in to db

public void insertImg(int id , Bitmap img ) {   


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

    insertStatement_logo.bindLong(1, id);       
    insertStatement_logo.bindBlob(2, data);

    insertStatement_logo.executeInsert();
    insertStatement_logo.clearBindings() ;

}

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

// ======== to retrieve a image from db

public Bitmap getImage(int i){

    String qu = "select img  from table where feedid=" + 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 ;
}</pre> <p><span > 

 

حالا سوال اینجاست، متد insertImg ورودی int id این رو دقیقا باید از کجا بگیرم بدم به متد؟

 

عکس رو کروپ کردم و در onActivityResult  این رو دارم:

 

 
                Bundle extras = data.getExtras();
                if (extras != null) {
                    Bitmap photo = extras.getParcelable("data");
                }

 

و در آخر(شاید هم از همون اول)، فیلد دیتابیس باید از چه نوعی باشه؟ BLOB؟

نظرات

در صورت Update کردن رکورد، آیدی رکورد رو پاس میدید و در حالت Insert و Auto increment میتونید صرفنظر کنید

پاسخ‌ها 1

Borhani 12 سال پیش

سلام نحوه ذخیره سازی تصویر در دیتابیس را می توانید از پروژه مارکت استاد یاد بگیرید

ببینید در اونجا از روی سرور عکس را دانلود می کند و بعد به شما نمایش می دهد شما هم می توانید به جای دانلود مسیر را از دیتابیس بخونید و در آنجا ذخیره کنید

نظرات

iSheykhi 12 سال پیش
مرسی، اما من در مورد این کد سوال واسم پیش اومد، فکر کنم عنوان سوال مناسب نبوده، با تشکر

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .