Problem beim Speichern des Bildes mit savefiledialog

Ich verwende savefiledialog, um ein Bild zu speichern. Canvas ist eine Bildbox und das geladene Bild ist eine Bitmap. Wenn ich versuche, es zu speichern, wird die Datei erstellt, aber irgendwie beschädigt. Wenn ich versuche, das Bild erneut zu laden oder es in einem anderen Viewer anzuzeigen, funktioniert es nicht. Ich meine, die gespeicherte Datei ist beschädigt. Es gibt eine Methode zum Speichern von Bildern.

 private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
        {

           System.IO.FileStream fs =
                (System.IO.FileStream)saveFileDialog1.OpenFile();

           try
           {
               switch (saveFileDialog1.FilterIndex)
               {
                   case 1:
                       canvas.Image.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Bmp);
                       break;
                   case 2:
                       canvas.Image.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
                       break;
                   case 3:
                       canvas.Image.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Png);
                       break;
                   case 4:
                       canvas.Image.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Tiff);
                       break;
               }

           }
           catch (Exception ex) 
           {
               System.Console.WriteLine("Exception " + ex);
           }

Ich sollte auch die Eigenschaft Filter erwähnen. saveFileDialog1.Filter hat den Wert:

bmp (*.bmp)|*.bmp|jpeg (*.jpeg)|*.jpeg|png (*.png)|*.png|tiff (*.tiff)|*.tiff

Antworten auf die Frage(1)

Ihre Antwort auf die Frage