Bonjour,
je galère quelque peu pour stocker et récupérer des images dans un fichier XML.
J'ai une application qui proposera de choisir une image qui apparaitra dans une pictureBox. L'image de cette picturebox devra être sauvée dans un fichier XML, ce qui implique sauf erreur de ma part
Image > Byte[] > string > XML
et la seconde application
XML > string > byte[] > Image > PictureBox
ca semble tellement simple à faire :-)
mais ca ne marche pas. Pour le moment, je me contente de faire ceci
byte[] > string > byte[]
et bien, je retrouve pas le byte[] de départ et plus tard, lorsque je crée une image depuis un memorystream prenant le tableau de bytes en parametres, j'ai une exception 'invalid argument' sans aucun detail.
voici ce que j'ai pour mon test conversion bidirectionnel byte <> string
je n'arrive déjà pas à avoir ooo == bbb. avec le débuggueur, je vois bien que chaque élément est différent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 private void button1_Click(object sender, EventArgs e) { byte[] ooo = convertPicBoxImageToByte(pictureBox1); string img = System.Text.Encoding.ASCII.GetString(ooo); byte[] bbb = StrToByteArray(img); } private byte[] convertPicBoxImageToByte(System.Windows.Forms.PictureBox pbImage) { System.IO.MemoryStream ms = new System.IO.MemoryStream(); pbImage.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); return ms.ToArray(); } public static byte[] StrToByteArray(string str) { System.Text.a encoding = new System.Text.ASCIIEncoding(); return encoding.GetBytes(str); }
képassa? existe-t-il une autre solution car j'ai beau jouer avec les encodages, rien n'y fait
---- seconde chose:
si je fais
Image => byte[] => Image
le canal alpha n'est pas préservé :-( A plus de transparence ou d'opacité. comment faire?
Partager