如何通过WPF中的SaveFileDialog保存BitmapImage?

cur*_*ity 2 c# wpf savefiledialog

我尝试的方式通过标准的Windows.Forms实现它(获得valide DialogResult.OK)

            System.Windows.Forms.SaveFileDialog dlg = new System.Windows.Forms.SaveFileDialog();
            dlg.FileName = "Document"; // Default file name
           // dlg.DefaultExt = ".jpg"; // Default file extension
            dlg.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif";
            if(dlg.ShowDialog()== System.Windows.Forms.DialogResult.OK) 
if (dlg.DialogResult.HasValue && splashDialog.DialogResult.Value)
            {
              string fName = dlg.FileName; 
              if (dlg.FileName != "")
              {
                 System.IO.Stream fileStream = (System.IO.FileStream)dlg.OpenFile(); 

                  fileStream.Close();
               }
             }
Run Code Online (Sandbox Code Playgroud)

这是使用Windows窗体但它保存空白图像((

Tho*_*que 5

你可以这样做:

var encoder = new JpegBitmapEncoder(); // Or PngBitmapEncoder, or whichever encoder you want
encoder.Frames.Add(BitmapFrame.Create(yourImage));
using (var stream = dlg.OpenFile())
{
    encoder.Save(stream);
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,SaveFileDialog在WPF中也有一个,你不必使用Windows Forms中的那个