Jump to content
Sign in to follow this  
Profete162

Mettre un bitmap dans une Base de donnée?

Recommended Posts

Salut.

Je travaille pour l'instant dans mes programmes avec des éléments d'une base de donnée qui contiennent une url vers une image.

Quand je veux les afficher, je vais à chaque fois chercher l'image associée à l'url, ce qui est tres tres lourd.

J'aimerais changer cette méthode et stocker les images dans ma DB. ( ce sont des icones, ca prend pas de place, et il y en a 4 ou 5 maximum)

exemple d'éléments de ma DB:

EN GENERAL: String nom - String description - String img_url

ITEM 1: Pomme - la pomme est un fruit - http://www.24hr-slots.co.uk/Microgaming/fr/images/Monster_Mania/Pomme.jpg

ITEM 2: Robot - un robot est un tas de métal qui semble être en vie - http://a1.twimg.com/profile_images/22039052/03.01.c3po_normal.jpg

Tout se passe tres bien, mais quand je veux afficher dans ma listview, mon adapter ca chercher directement l'image sur le net, et cela fait des accès à rallonge et un programme assez lent!

est-il possible de stocker directement l'image dans la DB pour un acces instantané????

Je précise que je peux transformer l'image en ressource de type "Bitmap" et c'est donc cette valeur que j'aimerais stocker.

pour l'instant je fais ceci:

        "create table "+DATABASE_TABLE+" (_id integer primary key autoincrement, "
               + KEY_NAME+" text not null, "+KEY_DESCRIPTION+" text not null, "+KEY_IMG_URL+" text not null);";

et un "put" pour mettre la valeur dans la DB.

Je vois bien que le put ne peut pas accepter de valeur genre Bitmap

20091228-irts1ncx957jm9adhsb2ctsfr.jpg

Donc je ne sais pas si ce que je demande est possible.

L'option de stocker les images sur la SD me parait un peu lourd, donc je cherche une alternative.

Merci pour votre aide

Edited by Profete162

Share this post


Link to post
Share on other sites

De mon avis de simple programmeur du dimanche:

Si il y a moyen de le faire avec DB, ca va faire un code simple et clair avec toutes les infos au même endroit

Avec la SD, cela fait plein de tests en plus pour éviter les erreurs quand pas de carte ou pas de bon répertoire,

Puis, il n'y a rien à faire, mais tout dans la DB, ca simplifie énormément les choses! lol

Bon, j'ai trouvé une piste: cf le message de padde dans ce forum: http://www.anddev.org/viewtopic.php?p=31939

Je testerai cet apres-midi.

Share this post


Link to post
Share on other sites

Essaye un truc du genre :

ByteArrayOutputStream outStream = new ByteArrayOutputStream();

myBitmap.compress(Bitmap.CompressFormat.PNG, outStream);

myDataBase.put(key, outStream.toByteArray());

Pour reconstruire l'image, il faudra utiliser BitmapFactory.decodeByteArray();

Ah bah tu avais déjà trouvé ça en fait. :lol:

Edited by Nivek

Share this post


Link to post
Share on other sites

Merci, Nivek, je vais essayer.

Ca al'air de ressembler au lien contenu dans le post que j'ai cité, je vais comparer et essayer!

Merci encore.

Share this post


Link to post
Share on other sites

A mon avis, il faut se restreindre à des petites images en petit nombre... sinon ca va manger l'espace dispo pour les autres applis.

Pour le stockage de masse, privilégier la sdcard.

--

Posté depuis BBFoC

Share this post


Link to post
Share on other sites

Je pense que j'ai été clair la dessus:

( ce sont des icones, ca prend pas de place, et il y en a 4 ou 5 maximum)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  





×
×
  • Create New...