Frage

Hallo Ich versuche, ein Bitmap-Bild in einem grundlegenden Bildbearbeitungsprogramm zu speichern.

Hier ist der Code:

         // then save it
        ImageBoxInApp.Image.Save(filename);

[EDIT] Und ich bin Öffnen Sie das Bild mit diesem

openFileDialog1.Title = "Select an Image";
        openFileDialog1.Filter = "All Files|*.*|Windows Bitmaps|*.bmp|JPEG Files|*.jpg";
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            filename = openFileDialog1.FileName;
            Image img = System.Drawing.Image.FromFile(filename);

Also, wenn ich versuche, diese erhalte ich eine Generic GDI+ error. So fand ich eine Lösung diese rel="nofollow und es sieht wie folgt aus:

        // Delete existing file first
        System.IO.File.Delete(filename);
        // then save it
        ImageBoxInApp.Image.Save(filename);

Aber wenn ich versuche, dies zu tun erhalte ich eine andere Fehlermeldung, dass die Datei, die ich lösche bin, ist derzeit offen. Dies liegt daran, dass die Datei, die ich zu bearbeiten versuche.

Wie kann ich die Datei „schließen“, ohne die Anwendung tatsächlich schließen? Oder gibt es eine alternative Lösung?

Danke!

War es hilfreich?

Lösung

Es ist schwer zu sagen, ohne etwas Kontext um, wie Ihr Laden der Datei zu sehen, aber hier sind ein paar Vorschläge:

  1. Vor dem Speichern, kopieren Sie das vorhandene Bild in ein neues Bild, das Original schließen, führen Sie das Löschen, und die Kopie speichern.
  2. Speichern Sie die Datei auf einen zufälligen Dateinamen, das Original löschen, benennen Sie die zufällig benannte Datei auf den ursprünglichen Namen.
  3. Laden Sie die Datei in einen Speicherstrom und verwenden die in Speicherkopie des Bildes zu initialisieren.

Ich würde persönlich mit Option # 3 für die meisten Fälle gehen. Achten Sie darauf, der das Bild zu entsorgen, wenn Sie fertig sind mit ihm -. Ist es am besten, wenn Sie es in einer mit () Block wickeln kann

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top