Hello !
Je coince sur un souci que j'ai déjà eu en Delphi il y a... 3 ans !
J'ai un fichier qui contient une image, noyée au milieu d'autres infos, une map TrackMania pour être précis.
Je souhaite extraire cette image pour l'afficher dans un picturebox.
Voilà mon code
Aucune erreur dans l'éditeur, juste une exception non gérée ou une histoire de paramètre invalide.
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
21
22
23
24
25 private void LoadMap_Click(object sender, EventArgs e) { openMap.Filter = "TM² Map|*.Map.Gbx|TM Map|*.Challenge.Gbx"; openMap.Title = "Choose your map."; if (openMap.ShowDialog() == DialogResult.OK) { StreamReader Map = new StreamReader(openMap.FileName); //Extraction de Thumbnail.jpg pictureCustom.Image = Image.FromStream(ExtractThumbnail(Map)); } } private MemoryStream ExtractThumbnail(StreamReader Map) { string MapText = Map.ReadToEnd(); int first = MapText.IndexOf("<Thumbnail.jpg>") + 15; int last = MapText.LastIndexOf("</Thumbnail.jpg>"); string stringImage = MapText.Substring(first, last - first); byte[] byteArray = Encoding.ASCII.GetBytes(stringImage); MemoryStream streamImage = new MemoryStream(byteArray); streamImage.Seek(0, 0); return streamImage; }
L'idée est de faire fichier -> stream -> string -> stream -> image.
Il y a peut être plus simple...
J'avais déjà codé le tout sous Delphi il y a 3 ans mais j'ai paumé tout mon code source pour pouvoir le modifier.
Je pense que j'aurais le problème inverse dans un moment puisque je devrais prendre le contenu d'un picturebox pour l'insérer dans le fichier à la place de l'image originale...
Partager