comment stocker l'Image blob dans Sqlite & comment faire pour le récupérer?
Je veux enregistrer une image(à partir de l'url) dans une base de données sqlite.
Pour que j'utilise:
db = new DataBase(getApplicationContext());
URL url = new URL("http://sree.cc/wp-content/uploads/schogini_team.png");
URLConnection ucon = url.openConnection();
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is,128);
ByteArrayBuffer barb= new ByteArrayBuffer(128);
int current = 0;
while ((current = bis.read()) != -1) {
barb.append((byte) current);
}
ContentValues filedata= new ContentValues();
filedata.put(DataBase.IMG_SRC,barb.toByteArray());
db.insert(DataBase.Table_Img, null, filedata);
Dans le Insert()
:
public void insert(String tableImg, Object object,
ContentValues dataToInsert) {
//TODO Auto-generated method stub
String sql = "INSERT INTO "+tableImg+" ("+ID+","+IMG_SRC+") " +
"VALUES ('"+1+"','"+dataToInsert+"')";
db.execSQL(sql);
}
Pour la récupération de l'image:
Cursor cursor = db.selectDataToShow(DataBase.Table_Img, DataBase.IMG_SRC);
byte[] imageByteArray=cursor.getBlob(cursor.getColumnIndex(DataBase.IMG_SRC));
cursor.close();
ByteArrayInputStream imageStream = new ByteArrayInputStream(imageByteArray);
Bitmap theImage = BitmapFactory.decodeStream(imageStream);
System.out.println(">>>>>>>>>>>>>>>>>>>>>> "+theImage);
Donc ici, je me suis null
.
Et dans ma base de données la valeur de l'image stockée en tant que: Image=[B@43e5ac48]
- dans l'extraction de db, je dois pas exactement byte[]..... toute aide?
Vous devez vous connecter pour publier un commentaire.
Voici le code que j'ai utilisé pour mon application
Ce code permet de prendre une image à partir de l'url et de le convertir à un tableau d'octets
Pour enregistrer l'image dans la base de données, j'ai utilisé ce code.
Pour récupérer l'image en arrière c'est le code que j'ai utilisé.
Enfin pour charger cette image sur une imageview
dans le DBAdaper je.e de la Base de Données de la classe helper déclarer le tableau comme celui-ci
insérer les valeurs comme ceci,
d'abord convertir les images en byte[]
dans DEAdaper classe
récupérer l'image comme suit
convertir le byte[] dans l'image
Je pense que ce contenu peut résoudre votre problème
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
?? Ce que je ne veux pas compresser mon image?Insert()
Espère que cela vous aide.
pour un ioniques projet
Et maintenant, nous avons mis imgBBDD en SqlLite
Un côté serveur (php)
vous pouvez également encoder et de décoder les vers/à partir de base64