OVH Cloud OVH Cloud

Récupération d'une image à partir d'une base de données

24 réponses
Avatar
Christelle
Bonjour

J'ai stock=E9 des images dans ma base de donn=E9es sql server.
J'arrive =E0 r=E9cup=E9rer l'image dans un variant de type Byte.=20
Mais je n'arrive pas =E0 l'afficher dans mon PictureBox.

Pouvez-vous m'aider ?

Merci d'avance pour votre aide

Christelle

10 réponses

1 2 3
Avatar
Zoury
dans quel format ton image est-elle conservée dans la bd? un bitmap entier
(avec entete de fichier et entete de bitmap), un jpg, etc. ?


--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Avatar
Zoury
Tu veux que le champs de la BD contient le contenu complet du fichier? dans
quel format ton image se trouve-t-elle dans la bd?


hs : juste pour être sûr.. tu n'est pas Christelle n'est-ce pas? j'veux dire
que ton problème est distinct du sien?

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Avatar
Zoury
avez-vous (Christelle et ThunderMusic) consulté l'article de la FAQ à ce
sujet?

Comment stocker une image dans une base de données
http://faq.vb.free.fr/index.php?question7

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Avatar
ThunderMusic
le fichier est stocké de la facon suivante (pseudo-code)

j'ouvre le fichier jpg
je lis le fichier et stock le contenu dans un tableau de bytes
je ferme mon fichier

je crée un nouveau record dans MonRecordset (MonRecordset.addnew)
je stock le tableau de bytes en utilisant Appendchunk dans mon champ de ma
db
je call MonRecordset.Update

j'espère qu'il y a assez de détails... comment pourrais-je faire pour
afficher mon image en ayant que les données binaires du fichier?

ThunderMusic

"Jean-Marc" wrote in message
news:4099295a$0$25089$
"ThunderMusic" a écrit dans le message de
news:%
> bonjour,
> si mon image était au départ un jpg, comment puis-je faire? puisque les
> entêtes de fihiers ne sont pas du tout les mêmes. Je suis capable


d'aller
> chercher les données du fichier aussi, mais je ne connais ni la largeur,
ni
> la hauteur de l'image, ni les bitmap bits... J'utilise déjà ces images
dans
> des scripts ASP et PHP, mais je suis incapable de les utiliser en VB.
>
> Merci pour votre aide.

Donc si je comprend bien, vous ne maitrisez pas la façon dont le fichier


est
stocké dans le champ de la DB.
C'est un jpg, stocké tel quel. Est ce bien cela ?

Si oui, si le champ contient exactement le fichier jpg, alors j'ai bien


une
idée....

Jean-Marc




Avatar
ThunderMusic
c'est un jpg... j'ai tout gardé le contenu du fichier jpg... et non, je ne
suis pas cristelle, c'est effectivement un problème distinct... mais je me
suis dit que c'était assez relié pour être dans le même topic. à moins que
je me trompe?

merci

ThunderMusic


"Zoury" wrote in message
news:O67%
dans quel format ton image est-elle conservée dans la bd? un bitmap entier
(avec entete de fichier et entete de bitmap), un jpg, etc. ?


--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/




Avatar
Zoury
regarde l'article de la FAQ c'est cette technique qui y est décrite. Il me
semble que tu dois la recréer sur le disque et la charger avec LoadPicture
par la suite..

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"ThunderMusic" wrote in message
news:
le fichier est stocké de la facon suivante (pseudo-code)

j'ouvre le fichier jpg
je lis le fichier et stock le contenu dans un tableau de bytes
je ferme mon fichier

je crée un nouveau record dans MonRecordset (MonRecordset.addnew)
je stock le tableau de bytes en utilisant Appendchunk dans mon champ de ma
db
je call MonRecordset.Update

j'espère qu'il y a assez de détails... comment pourrais-je faire pour
afficher mon image en ayant que les données binaires du fichier?

ThunderMusic

"Jean-Marc" wrote in message
news:4099295a$0$25089$
> "ThunderMusic" a écrit dans le message de
> news:%
> > bonjour,
> > si mon image était au départ un jpg, comment puis-je faire? puisque


les
> > entêtes de fihiers ne sont pas du tout les mêmes. Je suis capable
d'aller
> > chercher les données du fichier aussi, mais je ne connais ni la


largeur,
> ni
> > la hauteur de l'image, ni les bitmap bits... J'utilise déjà ces images
> dans
> > des scripts ASP et PHP, mais je suis incapable de les utiliser en VB.
> >
> > Merci pour votre aide.
>
> Donc si je comprend bien, vous ne maitrisez pas la façon dont le fichier
est
> stocké dans le champ de la DB.
> C'est un jpg, stocké tel quel. Est ce bien cela ?
>
> Si oui, si le champ contient exactement le fichier jpg, alors j'ai bien
une
> idée....
>
> Jean-Marc
>
>




Avatar
Zoury
> mais je me
suis dit que c'était assez relié pour être dans le même topic.
à moins que
je me trompe?



Oui c'est correct. C'est juste que Christelle n'a peut-être pas le contenu
complet d'un JGP dans la bd.. dès lors la solution peut varier.. ;O)

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Avatar
ThunderMusic
bonjour,
Est-ce que c'est moi ou c'est un peu "cheezy" comme solution... pourquoi en
ASP et en PHP qui sont des languages scriptés donc moins évolués que VB, je
peux le faire en 1 seule passe et qu'en VB je ne peux pas... il y a
surement quelque chose pour nous permettre de le faire?

Merci

"Zoury" wrote in message
news:
regarde l'article de la FAQ c'est cette technique qui y est décrite. Il me
semble que tu dois la recréer sur le disque et la charger avec LoadPicture
par la suite..

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"ThunderMusic" wrote in message
news:
> le fichier est stocké de la facon suivante (pseudo-code)
>
> j'ouvre le fichier jpg
> je lis le fichier et stock le contenu dans un tableau de bytes
> je ferme mon fichier
>
> je crée un nouveau record dans MonRecordset (MonRecordset.addnew)
> je stock le tableau de bytes en utilisant Appendchunk dans mon champ de


ma
> db
> je call MonRecordset.Update
>
> j'espère qu'il y a assez de détails... comment pourrais-je faire pour
> afficher mon image en ayant que les données binaires du fichier?
>
> ThunderMusic
>
> "Jean-Marc" wrote in message
> news:4099295a$0$25089$
> > "ThunderMusic" a écrit dans le message de
> > news:%
> > > bonjour,
> > > si mon image était au départ un jpg, comment puis-je faire? puisque
les
> > > entêtes de fihiers ne sont pas du tout les mêmes. Je suis capable
> d'aller
> > > chercher les données du fichier aussi, mais je ne connais ni la
largeur,
> > ni
> > > la hauteur de l'image, ni les bitmap bits... J'utilise déjà ces


images
> > dans
> > > des scripts ASP et PHP, mais je suis incapable de les utiliser en


VB.
> > >
> > > Merci pour votre aide.
> >
> > Donc si je comprend bien, vous ne maitrisez pas la façon dont le


fichier
> est
> > stocké dans le champ de la DB.
> > C'est un jpg, stocké tel quel. Est ce bien cela ?
> >
> > Si oui, si le champ contient exactement le fichier jpg, alors j'ai


bien
> une
> > idée....
> >
> > Jean-Marc
> >
> >
>
>




Avatar
ThunderMusic
oh... après avoir lu plus en détail, je me rétracte partiellement... je
trouve que la solution énoncé peut assez bien tenir la route si il n'y a
qu'une seule ou très peu d'images à afficher.

Seulement, y a-t-il tout de même une facon de ne pas passer par un fichier
temporaire sur le disque? parce que ca peut réduire la performance de
l'application si il y a plusieurs images à afficher.

Merci

ThunderMusic

"ThunderMusic" wrote in message
news:
bonjour,
Est-ce que c'est moi ou c'est un peu "cheezy" comme solution... pourquoi


en
ASP et en PHP qui sont des languages scriptés donc moins évolués que VB,


je
peux le faire en 1 seule passe et qu'en VB je ne peux pas... il y a
surement quelque chose pour nous permettre de le faire?

Merci

"Zoury" wrote in message
news:
> regarde l'article de la FAQ c'est cette technique qui y est décrite. Il


me
> semble que tu dois la recréer sur le disque et la charger avec


LoadPicture
> par la suite..
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> "ThunderMusic" wrote in message
> news:
> > le fichier est stocké de la facon suivante (pseudo-code)
> >
> > j'ouvre le fichier jpg
> > je lis le fichier et stock le contenu dans un tableau de bytes
> > je ferme mon fichier
> >
> > je crée un nouveau record dans MonRecordset (MonRecordset.addnew)
> > je stock le tableau de bytes en utilisant Appendchunk dans mon champ


de
ma
> > db
> > je call MonRecordset.Update
> >
> > j'espère qu'il y a assez de détails... comment pourrais-je faire pour
> > afficher mon image en ayant que les données binaires du fichier?
> >
> > ThunderMusic
> >
> > "Jean-Marc" wrote in message
> > news:4099295a$0$25089$
> > > "ThunderMusic" a écrit dans le message


de
> > > news:%
> > > > bonjour,
> > > > si mon image était au départ un jpg, comment puis-je faire?


puisque
> les
> > > > entêtes de fihiers ne sont pas du tout les mêmes. Je suis capable
> > d'aller
> > > > chercher les données du fichier aussi, mais je ne connais ni la
> largeur,
> > > ni
> > > > la hauteur de l'image, ni les bitmap bits... J'utilise déjà ces
images
> > > dans
> > > > des scripts ASP et PHP, mais je suis incapable de les utiliser en
VB.
> > > >
> > > > Merci pour votre aide.
> > >
> > > Donc si je comprend bien, vous ne maitrisez pas la façon dont le
fichier
> > est
> > > stocké dans le champ de la DB.
> > > C'est un jpg, stocké tel quel. Est ce bien cela ?
> > >
> > > Si oui, si le champ contient exactement le fichier jpg, alors j'ai
bien
> > une
> > > idée....
> > >
> > > Jean-Marc
> > >
> > >
> >
> >
>
>




Avatar
Zoury
> Est-ce que c'est moi ou c'est un peu "cheezy" comme solution...



très d'accord. :O)


ASP et en PHP qui sont des languages scriptés donc moins évolués que VB,


je
peux le faire en 1 seule passe et qu'en VB je ne peux pas...



je ne connais pas c'est language malheureusement, je ne donc pas comparer.
:OP



il y a surement quelque chose pour nous permettre de le faire?



Étant donnée que les données représente un fichier JPG, il faudrait
reconstituer en mémoire vive le bitmap original (car toutes les images
affiché à l'écran est une bitmap) en appliquant l'algorithme de
décompression d'un JPG (que je ne connais pas). À partir de ce nouveau
tableau de Byte() ils seraient possible d'interpréter les informations qu'il
contient afin d'afficher l'image (avec les APIs).

Comme tu peux le voir tu t'embarquerait dans un chantier de construction
assez complexe.. :O/

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"ThunderMusic" wrote in message
news:
bonjour,
pourquoi en
ASP et en PHP qui sont des languages scriptés donc moins évolués que VB,


je
peux le faire en 1 seule passe et qu'en VB je ne peux pas... il y a
surement quelque chose pour nous permettre de le faire?

Merci

"Zoury" wrote in message
news:
> regarde l'article de la FAQ c'est cette technique qui y est décrite. Il


me
> semble que tu dois la recréer sur le disque et la charger avec


LoadPicture
> par la suite..
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> "ThunderMusic" wrote in message
> news:
> > le fichier est stocké de la facon suivante (pseudo-code)
> >
> > j'ouvre le fichier jpg
> > je lis le fichier et stock le contenu dans un tableau de bytes
> > je ferme mon fichier
> >
> > je crée un nouveau record dans MonRecordset (MonRecordset.addnew)
> > je stock le tableau de bytes en utilisant Appendchunk dans mon champ


de
ma
> > db
> > je call MonRecordset.Update
> >
> > j'espère qu'il y a assez de détails... comment pourrais-je faire pour
> > afficher mon image en ayant que les données binaires du fichier?
> >
> > ThunderMusic
> >
> > "Jean-Marc" wrote in message
> > news:4099295a$0$25089$
> > > "ThunderMusic" a écrit dans le message


de
> > > news:%
> > > > bonjour,
> > > > si mon image était au départ un jpg, comment puis-je faire?


puisque
> les
> > > > entêtes de fihiers ne sont pas du tout les mêmes. Je suis capable
> > d'aller
> > > > chercher les données du fichier aussi, mais je ne connais ni la
> largeur,
> > > ni
> > > > la hauteur de l'image, ni les bitmap bits... J'utilise déjà ces
images
> > > dans
> > > > des scripts ASP et PHP, mais je suis incapable de les utiliser en
VB.
> > > >
> > > > Merci pour votre aide.
> > >
> > > Donc si je comprend bien, vous ne maitrisez pas la façon dont le
fichier
> > est
> > > stocké dans le champ de la DB.
> > > C'est un jpg, stocké tel quel. Est ce bien cela ?
> > >
> > > Si oui, si le champ contient exactement le fichier jpg, alors j'ai
bien
> > une
> > > idée....
> > >
> > > Jean-Marc
> > >
> > >
> >
> >
>
>




1 2 3