画像を保存するために savefiledialog を使用しています。キャンバスはピクチャーボックスで、読み込まれた画像はビットマップです。保存しようとすると、ファイルは作成されますが、何らかの理由で破損しています。画像を再度読み込もうとしたり、別のビューアで表示したりしてもうまくいきません。つまり、保存したファイルが壊れているということです。画像を保存する方法があります。
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);
}
プロパティ Filter についても言及する必要があります。saveFileDialog1.Filter には次の値があります:
bmp (*.bmp)|*.bmp|jpeg (*.jpeg)|*.jpeg|png (*.png)|*.png|tiff (*.tiff)|*.tiff