Erhalten Sie eine bitmap-Datei name
Ich benutze diese Zeile unten für meine Bitmap:
Bitmap b = new Bitmap(@"C:\<file name>");
Nachdem ich ändern, das bitmap-und ich will es speichern, wie in der Zeile darunter:
b.Save(@"C:\\<other file name>")
Meine Frage ist - wie bekomme ich den Dateinamen der bitmap-Eigenschaft von.
Einfach gesagt, ich muss speichern Sie die bitmap mit dem gleichen Namen, mit denen ich initiiert hatte es.
Dank
- Sie bekommen keine Hilfe von Bitmap, es nicht verfolgen Sie einen Dateinamen ein. Noch eine Bitmap erstellt werden, eine Datei, es hat mehrere Konstruktoren. Sie benötigen, um zu verfolgen, dies selbst mit einem string-variable.
- ich verstehe, danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht können Sie dies mit Metadaten - aber ich bin nicht vertraut mit diesem Thema, daher bin ich mir nicht ganz sicher, es ist möglich, noch ich, wie es zu tun.
Was ich tun vorschlagen, ist eine Art.
So zum Beispiel können Sie eine Klasse erstellen, die eine Bitmap(1) - Eigenschaft für das Bild, und ein string für den Pfad der Datei.
Und verwenden Sie es wie so:
(1) Erwägen Sie die Verwendung der Bild Klasse statt. Es ist die Basisklasse von Bitmap. Wenn Sie nicht sicher sind, welche zu benutzen, Fragen Sie sich, ob Ihre Klasse erfordert, ein Bild oder ein Bild, die genaue format (also bitmap).
Die von Ihnen positiv bewertet werden Antwort zu bekommen Sie in Schwierigkeiten. Laden einer bitmap aus einer Datei setzt eine Sperre auf die Datei. Sie können nicht speichern Sie es zurück, ohne die Entsorgung der bitmap-ersten. Das ist eine Huhn-und-ei-problem, das Sie nicht lösen können, ohne das Klonen der bitmap. Das ist ein bisschen schwierig, in sich selbst ist, wird die Bitmap.Clone () - Methode ist eine optimierte version, mit den gleichen Speicher-Abschnitt, setzen Sie die Sperre auf die Datei in den ersten Platz. So ja eigentlich nicht gibt die Sperre frei.
Hier eine kleine Klasse, die kümmert sich um das erstellen einer tiefen-Klon und merkt sich den Pfad und das format der ursprünglichen bitmap:
Und verwenden Sie es wie diese:
Könnten Sie eine variable verwenden:
dann:
Beachten Sie auch, dass ich gewickelt habe den
Bitmap
- Instanz in eineusing
Anweisung zur Freigabe nicht verwalteter Ressourcen, die Sie zugeordnet sind, sobald wir mit ihm fertig sind. Sie sollte immer wickeln SieIDisposable
Objekte inusing
Aussagen.Einer möglichen umgehen, ist die Verwendung der Bitmap-Tag-Eigenschaft speichert den Pfad der Schöpfung..
..und rufen dann den Pfad später..
..nur sicher, dass nach Besetzung des Tags als string, und auch kopieren Sie das Tag auf alle Instanzen aus der Quell-bitmap.
Nicht. Einfach. Grundsätzlich ist die bitmap erinnert sich nicht an die Datei -es ist Ihr job.
Dass Sie im Grunde tesay "ich bekomme ein Bild schicken per UPS, nach dem Auspacken Sie - Tage später - wie finde ich den Versand Zahl auf dem Bild?" - Sie nicht.
Anderen Weg, um das problem der sperren der Datei, dass Hans beschreibt, ist
freeze
Bild.