Come si fa a memorizzare un'immagine in un database? Lo avevo visto ma non lo ricordo...
Che tipo di dati è Blob?
Per memorizzare un'immagine come dati blob bisognerebbe convertirla in array di bytes.
Il metodo compress su una bitmap, cosa è?
Troviamolo...
Scrive la bitmap su un outputstream.
Questo può essere convertito in ByteArray.
link.
Realizzati tutti e due i codici, per l'immissione e per la lettura dell'immagine da database:
metodo di helper:
public void save(int drawable){ SQLiteDatabase db=this.getWritableDatabase(); Bitmap bmp=BitmapFactory.decodeResource(getResources(), drawable); //dovrei creare un outputstream... ByteArrayOutputStream stream=new ByteArrayOutputStream(); //ora usare il metodo compress sulla bitmap... bmp.compress(CompressFormat.JPEG, 50, stream); byte[] blob=stream.toByteArray(); ContentValues values=new ContentValues(); values.put("IMMAGINE", blob); db.insert("TABELLA", null, values); }
Dal metodo query() di helper ottengo il cursore, che gestisco così:
byte[] blob=helper.query().getBlob(1); Bitmap bmp=BitmapFactory.decodeByteArray(blob, 0, blob.length);
Nessun commento:
Posta un commento