Conversion DataGridViewIMAGE en BMP (vb2005)

vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 - 8 févr. 2007 à 15:55
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 - 8 févr. 2007 à 23:05
bonjour,

j'ai beau chercher je ne retrouve plus le code qui permet de transformer une image stokée dans une DataGridViewColumImage en fichier BMP.
cette image est en system.byte() je crois.

je souhaite récupérer l'image stokée et la transformer en fichier BMP ou gif, ou jpg

merci de votre aide

20 réponses

Utilisateur anonyme
8 févr. 2007 à 17:06
Une image en System.Bytes() ??? Tu est sur ?
Chez moi c'est du System.Drawing.Image. Donc aucun problèmes.
Utilise TryCast pour récupéré le contenu de la cellule.






__________
Kenji
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
8 févr. 2007 à 17:29
je ne sais pas faire avec trycast, peux-tu me donner un exemple avec

récupérer le:datagriview.row(x).cell(y).value  qui contient une image

et le mettre dans un picturebox1

merci
0
Utilisateur anonyme
8 févr. 2007 à 17:44
Dim Img As System.Drawing.Image = TryCast(DataGridView1.Item(x, y).Value, System.Drawing.Image)
TaPictureBox.Image = Img






__________
Kenji
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
8 févr. 2007 à 19:00
merci, j'ai essayé:

avec le trycast, il se passe rien

j'ay mis:
ctype(DataGridView1.Item(x, y).Value, System.Drawing.Image)

el là j'ai l'erreur suivante:

Impossible d'effectuer un cast d'un objet de type 'System.Byte[]' en type 'System.Drawing.Image'

merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
8 févr. 2007 à 19:07
Mais elle viens d'ou ton image ? Elle s'affiche au moins ?
Jammais vu d'image en tableau de bytes sauf si c'est pour une lecture bits par bits (dans ce cas pas d'affichage)






__________
Kenji
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
8 févr. 2007 à 19:20
ok, donc mon image viens:
d'une table access
sous access, j'ai "coller" dans le champ le "copier" de l'image dans Paint.

oui, elle s'affiche trés bien
0
Utilisateur anonyme
8 févr. 2007 à 19:38
Ok,

Tiens essaye ca :


Public Shared Function ByteArrayToImage(ByVal Source As Byte()) As System.Drawing.Image
  Dim ms As New System.IO.MemoryStream()
  ms.Write(Source, 0, Source.Length)
  Return System.Drawing.Image.FromStream(ms)
End Function,

----

(Coloration syntaxique automatique par Kenji)





__________
Kenji
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
8 févr. 2007 à 19:57
Public



Function
ByteArrayToImage(

ByVal
Source

As



Byte
())

As
System.Drawing.Image


   Dim
ms

As



New
System.IO.MemoryStream()
   ms.Write(Source, 0, Source.Length)


   Return
System.Drawing.Image.FromStream(ms)


End



Function

Dim



img_convertie

As
System.Drawing.Image =

Me
.ByteArrayToImage(

Me
.grille_relevés_tous.CurrentRow.Cells("i_moment").Value)
donne l'erreur suivante:
"Le paramètre n'est pas valide."

dans la function

merci
0
Utilisateur anonyme
8 févr. 2007 à 20:03
Ben faut que tu fasse un cast en Bytes[]






__________
Kenji
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
8 févr. 2007 à 20:15
comment çà ?, comme çà :
cast(img_convertie As

System.Drawing.Image =

Me
.ByteArrayToImage(

Me
.grille_relevés_tous.CurrentRow.Cells("i_moment").Value),byte())

merci, je sens qu'on en est pas loin
0
Utilisateur anonyme
8 févr. 2007 à 20:18
Naaaaann, le Ctype ppour caster le contenu de la cellule en Bytes() pour le passer en argument à la fonction.
Dim img_convertie As System.Drawing.Image = ByteArrayToImage(CType(Me.grille_relevés_tous.CurrentRow.Cells("i_moment").Value, Byte()))








__________
Kenji
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
8 févr. 2007 à 20:25
idem

"Le paramètre n'est pas valide."

grrrrrrrrrr
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
8 févr. 2007 à 20:26
j'ai carrément fait un cop/col de ta ligne
0
Utilisateur anonyme
8 févr. 2007 à 20:29
Non, en principe c'est bon.
Décompose pour être sure.

Dim Bits() As Byte = CType(Me.grille_relevés_tous.CurrentRow.Cells("i_moment").Value, Byte())
Dim img_convertie As System.Drawing.Image = ByteArrayToImage(Bits)






__________
Kenji
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
8 févr. 2007 à 20:29
l'erreur est sur cette ligne:
Return
System.Drawing.Image.FromStream(ms)
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
8 févr. 2007 à 20:31
pareil, toujours sur le return de la function

:(((
0
Utilisateur anonyme
8 févr. 2007 à 20:51
"
l'erreur est sur cette ligne:
Return System.Drawing.Image.FromStream(ms) "



Mais c'est quoi l'erreur ? Il te dis quoi ? Il te propose pas une modification à faire ?






__________
Kenji
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
8 févr. 2007 à 21:58
non, il propose pas de modif à faire

juste "Le paramètre n'est pas valide."

je pense que le stream 'ms' est pas bon
0
Utilisateur anonyme
8 févr. 2007 à 22:57
Ben, revérifie tout, chez moi ca marche très bien.
Un MemoryStream peut être transformer en Stream.






__________
Kenji
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
8 févr. 2007 à 23:05
ok, ben merci quand même
0
Rejoignez-nous