title: How to store image in SQLite database
body: <p>In my application I am uploading an image from gallery and I want to store this image in the SQLite database. How do I store a bitmap in the database? I am converting bitmap to a string and saving it in the database. While retrieving it from the database, I am not able to assign that string to ImageView since it is a string.</p>
  <p>Imageupload12 .java:</p>
  <pre class="lang-java prettyprint-override"><code>     public class Imageupload12 extends Activity {
        Button buttonLoadImage;
        ImageView targetImage;
        int i = 0;
        Database database = new Database(this);
        String i1;
        String img;
        @Override
        public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main5);
         buttonLoadImage = (Button) findViewById(R.id.loadimage);
         targetImage = (ImageView) findViewById(R.id.targetimage);
      
      
         Bundle b = getIntent().getExtras();
         if (b != null) {
          img = b.getString(&quot;image&quot;);
          targetImage2.setImageURI(&quot;image&quot;);
          //i am getting error as i cant assign string to imageview.
      
         }
      
         buttonLoadImage.setOnClickListener(new Button.OnClickListener() {
      
          public void onClick(View arg0) {
           // TODO Auto-generated method stub
           Intent intent = new Intent(Intent.ACTION_PICK,
            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
           Log.i(&quot;photo&quot;, &quot;&quot; + intent);
           startActivityForResult(intent, i);
           i = i + 1;
          }
         });
      
        }
      
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      
         // TODO Auto-generated method stub
         super.onActivityResult(requestCode, resultCode, data);
         switch (requestCode) {
      
          case 0:
           if (resultCode == RESULT_OK) {
            Uri targetUri = data.getData();
            //             textTargetUri.setText(targetUri.toString());
            Bitmap bitmap;
            try {
             bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(targetUri));
             targetImage.setImageBitmap(bitmap);
      
             i1 = bitmap.toString();
             Log.i(&quot;firstimage........&quot;, &quot;&quot; + i1);
             targetImage.setVisibility(0);
      
             SQLiteDatabase db = database.getWritableDatabase();
             db.execSQL(&quot;INSERT INTO UPLOAD VALUES('&quot; + i1 + &quot;');&quot;);
      
            } catch (FileNotFoundException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
            }
           }
           break;
      
      
      
         }
      
        }
       }
  
  </code></pre>
  <p>Image.class:</p>
  <pre class="lang-java prettyprint-override"><code>    public class Image extends Activity {
       Database database = new Database(this);
       static EfficientAdapter adapter, adapter1;
       static ListView lv1;
      
       static SQLiteDatabase db;
       static EfficientAdapter adp;
       static Cursor c1;
      
       static Vector &lt; String &gt; IMAGE = new Vector &lt; String &gt; ();
      
       @Override
       public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      
        db = database.getReadableDatabase();
        c1 = db.rawQuery(&quot;select * from UPLOAD;&quot;, null);
      
        if (c1.moveToFirst()) {
      
         do {
          IMAGE.add(c1.getString(0).toString());
      
         } while (c1.moveToNext());
      
         c1.close();
        }
      
        lv1 = (ListView) findViewById(R.id.List);
      
        adapter = new EfficientAdapter(this);
      
      
        lv1.setAdapter(adapter);
      
        ImageView add = (ImageView) findViewById(R.id.imv1a);
      
      
      
        add.setOnClickListener(new OnClickListener() {
      
         @Override
         public void onClick(View v) {
          // TODO Auto-generated method stub
          IMAGE.clear();
      
          Intent i = new Intent(Image.this, Imageupload12.class);
          startActivity(i);
      
      
         }
        });
      
      
       }
      
      
      
       private static class EfficientAdapter extends BaseAdapter {
      
      
        //        protected  final Context Context = null;
        protected LayoutInflater mLayoutInflater;
        AlertDialog.Builder aBuilder;
        public EfficientAdapter(Context context) {
         // TODO Auto-generated constructor stub
         mLayoutInflater = LayoutInflater.from(context);
        }
      
        @Override
        public int getCount() {
         // TODO Auto-generated method stub
      
         return IMAGE.size();
        }
      
        @Override
        public Object getItem(int position) {
         // TODO Auto-generated method stub
         return position;
        }
      
        @Override
        public long getItemId(int position) {
         // TODO Auto-generated method stub
         return position;
        }
      
        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
         // TODO Auto-generated method stub
      
         final ViewHolder mVHolder;
         if (convertView == null) {
          convertView = mLayoutInflater.inflate(R.layout.pjtlistdetails, parent, false);
      
          mVHolder = new ViewHolder();
      
          mVHolder.t1 = (TextView) convertView.findViewById(R.id.pjtdetails);
          mVHolder.time = (TextView) convertView.findViewById(R.id.name);
      
      
          mVHolder.imv = (ImageButton) convertView.findViewById(R.id.editic);
          mVHolder.imvd = (ImageView) convertView.findViewById(R.id.delete);
          mVHolder.imvf = (ImageView) convertView.findViewById(R.id.fwd);
      
      
      
      
      
          mVHolder.imv.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
      
      
      
            String img = IMAGE.elementAt(position);
            Log.i(&quot;image...&quot;, &quot;&quot; + img);
      
            Context ctx = v.getContext();
            Intent myIntent = new Intent();
            ctx = v.getContext();
            myIntent.setClass(ctx, Imageupload12.class);
            myIntent.putExtra(&quot;image&quot;, img);
      
            ctx.startActivity(myIntent);
      
            IMAGE.clear();
      
           }
          });
          static class ViewHolder {
      
           ImageButton imv;
           ImageView imvd, imvf;
          }
         }
        }
       }
      }
  </code></pre>