2012-04-05 5 views
2

Ich kann nicht herausfinden, warum ich Strom geöffnet bleiben sollte, während ich Bitmap oder Image verwende.Warum sollte ich Stream geöffnet bleiben, während Bitmap verwenden

Ich versuche, den Stream zu schließen und mein Bild mehrere Möglichkeiten und alles in Ordnung zu verwenden.

Die Frage ist, in welchen Fällen kann ich eine Ausnahme erhalten, wenn weiterhin den Stream nach der Initialisierung zu schließen Image Objekt?

+1

Bitte geben Sie Ihren Code ein! – dash

Antwort

5

Die Image Klasse wird entweder in dem gesamten Bild bei der Erstellung durch Image.FromFile oder Image.FromStream, sondern nur liest genug reagiert auf grundlegende Fragen wie Größe und Pixelformat nicht lesen.

Nur wenn Sie versuchen, auf die Pixel in irgendeiner Weise zuzugreifen (normalerweise, indem Sie das Bild auf dem Bildschirm zeichnen), liest es die Bilddaten.

Diese faule Natur bedeutet, dass sie Zugriff auf den zugrunde liegenden Stream (oder die Datei) benötigt, wenn sie später in ihrem Leben benötigt wird.

+0

Sie können natürlich die Bilddaten in einen Speicherstream lesen (oder vielleicht eine andere API verwenden, um das Bild sofort zu laden), damit die zugrunde liegende Datei geschlossen werden kann. Dies ist jedoch nur notwendig, wenn es ein _problem_ ist, die Datei offen zu lassen. –

Verwandte Themen