Remplir un PictureBox avec une image extraite d'un fichier
Hello !
Je coince sur un souci que j'ai déjà eu en Delphi il y a... 3 ans ! :mouarf:
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
Code:
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;
} |
Aucune erreur dans l'éditeur, juste une exception non gérée ou une histoire de paramètre invalide.
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. :calim2::calim2:
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... :lol: