[C#] Image / Bild ohne File lock laden

Drucken
( 1 Vote )
Hauptkategorie: Programmieren Kategorie: C#
Erstellt am 18.07.2012 Zuletzt aktualisiert am 18.07.2012 Geschrieben von Jonny132
Die Funktion Image.FromFile() bietet eine angenehme Möglichkeit ein Bild von einer Datei zu laden.
Der große Nachteil dieser Funktion ist jedoch, dass die Datei gelockt wird, bzw nichtmehr bearbeitbar / veränderbar ist.

Durch einen kleine Hilfsfunktion, kann man diesen Nachteil beheben.

ImageFromFile - Funktion:
        private Image ImageFromFile(string path)
        {
            if (File.Exists(path))
            {
                using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
                {
                    return Image.FromStream(fs);
                }
            }
            return null;
        }
Als Übergabeparameter übernimmt die Funktion den Pfad zur Bilddatei, welcher mittels File.Exists() überprüft wird, ob es sich um eine gültige bzw. existierende Datei handelt.

Ist dies der Fall, können wir in einem Using - Block eine FileStream - Instanz erzeugen.
Dabei ist zu beachten, dass als dritter Parameter FileAccess.Read übermittelt wird.
  
Mittels Image.FromStream() können Sie nun das Bild von dem zuvor erstelltem Stream erzeugen und zurückgeben.

Da der FileStream in ein Using-Block gesteckt wurde, ist kein Closen und Disposen nötig.

Aufrufbeispiel:
pictureBox1.Image = ImageFromFile(@"pfadZurDatei");

Dieses Tutorial könnte ebenfalls interessant für Sie sein:
[C#] Image / Bild aus dem Internet anzeigen

    Veröffentlichen Sie ihre Kommentare ...