Deeddolith
Messages postés20Date d'inscriptionjeudi 24 novembre 2005StatutMembreDernière intervention 4 octobre 2008
-
24 sept. 2008 à 19:34
Deeddolith
Messages postés20Date d'inscriptionjeudi 24 novembre 2005StatutMembreDernière intervention 4 octobre 2008
-
24 sept. 2008 à 23:31
Bonjour,
J'ai un petit soucis avec un controle picturebox.
Dans mon application, j'extrais des images au format BMP a partir d'une base de donnée Access.
Dans un tableau d'octets (OLEheader), j'ai enregistré les entetes OLE renvoyé par la BDD.
Maintenant, je voudrais enregistrer l'image affichée par mon picturebox dans la base, en y ajoutant les entetes OLE (ainsi, l'image est visible dans les formulaires de Access).
J'ai ecrit le code suivant:
'pic_mob est le picturebox utilisé
Dim pictureData As Byte() 'Tableau destné a recevoir les données de l'image
Dim fieldData as Byte() 'Tableau destiné a recevoir les entetes OLE + image
Dim stream As IO.MemoryStream
stream =
New IO.MemoryStream
pic_mob.Image.Save(stream, Imaging.ImageFormat.Bmp) 'sauvegarde de l'image dans un flux
ReDim pictureData(0
To stream.Length) 'préparation du tableau image
stream.Read(pictureData, 0, stream.Length) 'copie de l'image dans le tableau
ReDim fieldData(0
To stream.Length + OLEheader.Length) 'préparation du tableau entetes OLE + image
Array.Copy(OLEheader, fieldData, OLEheader.Length) 'copie des entetes OLE
Array.Copy(pictureData, 0, fieldData, OLEheader.Length, pictureData.Length) 'copie des données image
Hors, lors de l'ecriture des données de l'image dans le flux, les entetes BMP ne sont pas présentent comme je m'y attendais (peut etre a tort), et du coup les données ecrites dans la base sont corrompues, fesant planter mon application.