2011-11-16 3 views
2

내가이 윈도우 폼을 사용하고WPF에서 SaveFileDialog를 통해 BitmapImage를 저장하는 방법은 무엇입니까?

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

(valide DialogResult.OK를 얻기 위해)의 standart Windows.Forms을 통해이를 구현하려고하는 방법하지만 빈 이미지 ((

+0

BitmapImage, 당신은 결코 ... –

답변

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

BTW, 당신은 윈도우 W를 들어

+0

그것에서 이미지를 쓸 ??? 당신의 솔루션은 감사하고 있습니다. 하지만 WPF savefile 대화 상자를 호출하는 방법 – curiousity

+0

'System.Windows.Forms.SaveFileDialog' 대신'Microsoft.Win32.SaveFileDialog'를 사용하십시오. –

0

양식에서 하나를 사용할 필요가 없습니다, 너무 WPF에서 SaveFileDialog있다 PF 코드가 같을 것입니다 : 여기

Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog(); 
dlg.FileName = "Document";    
dlg.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif"; 
if (dlg.ShowDialog() == true) 
{ 
    var encoder = new JpegBitmapEncoder(); // Or PngBitmapEncoder, or whichever encoder you want 
    encoder.Frames.Add(BitmapFrame.Create(bi)); 
    using (var stream = dlg.OpenFile()) 
    { 
     encoder.Save(stream); 
    } 
} 

양방향 당신은 방금 열고 파일을 닫는 것