انجمن سایت کلیدستان



دریافت اطلاعات از sqliteزمان کنونی: ۱۳۹۵/۰۹/۱۸، ۱۲:۴۰ ق.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: بنیامین خلیفه
آخرین ارسال: بنیامین خلیفه
پاسخ 3
بازدید 315

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
دریافت اطلاعات از sqlite

دریافت اطلاعات از sqlite

#1
[font]سلام دوستان
من یک عکس رو به صورت زیر در sqlite ذخیره کردم اما وقتی عکس رو از دیتابیس میگیرم چیزی در ایمیج ویو نشون داده نمیشه[/font]
[font]اول عکسو به ارایه از نوع بایت تبدیل کردم[/font]
 
کد پی‌اچ‌پی:
Bitmap bm BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
ByteArrayOutputStream baos = new ByteArrayOutputStream();  
bm.compress(Bitmap.CompressFormat.PNG100baos); // PNG (you can choose JPEG)
byte[] baos.toByteArray();
Insert_to_db(b); // ارسال برای ذخیره در تابع دیتابیس 
اینم تابع برای ذخیره کردن 
 
کد پی‌اچ‌پی:
public void Insert_to_db(byte[] str){
   
String DATABASE_NAME "MYIMAGE.db";
    
String TABLE_NAME "Im";  
try{
    
SQLiteDatabase mydb openOrCreateDatabase(DATABASE_NAMEContext.MODE_PRIVATE,null);
    
mydb.execSQL("INSERT INTO " TABLE_NAME " (img) VALUES ('"+str+"')");
 
    
mydb.close();
  
}catch(
Exception e){
    
Toast.makeText(getApplicationContext(), "Error in inserting into table"Toast.LENGTH_LONG).show();
}     

در زیر دوباره اطلاعات رو دریافت کردم و بایت رو به bitmap تغییر دادم
 
کد پی‌اچ‌پی:
public void read_to_db(){
String DATABASE_NAME "MYIMAGE.db";
    
String TABLE_NAME "Im";  
        
byte[] Nttt=null;
        try{
            
SQLiteDatabase mydb openOrCreateDatabase(DATABASE_NAMEContext.MODE_PRIVATE,null);
            
Cursor allrows  mydb.rawQuery("SELECT * FROM "+  TABLE_NAME+" WHERE ID=1"null);
            if(
allrows.moveToFirst()){
                do{
                    
String ID allrows.getString(0);
                    
Nttt allrows.getBlob(1);                            
                }
                while(
allrows.moveToNext());
            }
            
mydb.close();
        }catch(
Exception e){
            
Toast.makeText(getApplicationContext(), "Error"Toast.LENGTH_LONG).show();
        }
        
        
ByteArrayInputStream bais = new ByteArrayInputStream(Nttt);
Bitmap bm2BitmapFactory.decodeStream(bais);

ImageView iv = (ImageViewfindViewById(R.id.imageView1);
iv.setImageBitmap(bm2);  // درج عکس
    

Nttt ارایه ما رو برمیگردونه و اونو به bitmap تبدیل کردم ولی تصویر نمایش داده میشه کسی میتونه بگه مشگل از کجاست
برای ذخیره نوع sqlite رو BLOB در نظر گرفتم.
 
پاسخ

دریافت اطلاعات از sqlite

#2
من کد شما رو دقیق نگاه نکردم.ولی تا اونجا که فهمیدم ،شما میاید هر دفعه کوئری رو میزنید و سلکت میکنید ،میاید عکس میگیرید و تبدیل به bitmap  میکنید؟
خب یعنی این عمل با هر کوئری زدن تکرار میشه.این کار به نظر من درست نیست.
شما باید عکس داخل یک پوشه خاص ذخیره کنید،یکبار برای همیشه.
و آدرس عکس که یک رشته است رو داخل دیتابیس بخوابونید،.و آدرس از دیتابیس بگیرید و نمایش بدید عکس رو.
وگرنه لزومی نداره شما عکس داخل دیتابیس بخوابونید.
پاسخ
 سپاس شده توسط admin

دریافت اطلاعات از sqlite

#3
(۱۳۹۴/۰۷/۲۶, ۰۳:۰۹ ب.ظ)'داش بهروز' نوشته: من کد شما رو دقیق نگاه نکردم.ولی تا اونجا که فهمیدم ،شما میاید هر دفعه کوئری رو میزنید و سلکت میکنید ،میاید عکس میگیرید و تبدیل به bitmap  میکنید؟
خب یعنی این عمل با هر کوئری زدن تکرار میشه.این کار به نظر من درست نیست.
شما باید عکس داخل یک پوشه خاص ذخیره کنید،یکبار برای همیشه.
و آدرس عکس که یک رشته است رو داخل دیتابیس بخوابونید،.و آدرس از دیتابیس بگیرید و نمایش بدید عکس رو.
وگرنه لزومی نداره شما عکس داخل دیتابیس بخوابونید.

 
[font]ممنون فقط عکسی که میندازم چطوری باید اسمش رو بدست بیارم؟ 
میشه محل ذخیره عکسو تغییر داد؟[/font]


 
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)