Problem podczas zapisywania obrazu przy użyciu savefiledialog

Używam savefiledialog, aby zapisać obraz. Canvas to picturebox, a załadowany obraz jest bitmapą. Gdy próbuję go zapisać, plik jest tworzony, ale w jakiś sposób uszkodzony. Bo kiedy próbuję againt załadować obraz lub pokaz w innej przeglądarce to nie działa - mam na myśli, że zapisany plik jest uszkodzony. Istnieje metoda zapisywania obrazu.

 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);
           }

Powinienem też wspomnieć o filtrze właściwości. saveFileDialog1.Filter ma wartość:

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

questionAnswers(1)

yourAnswerToTheQuestion