2013-06-03 2 views
2

로 PNG 파일, 캔버스를 저장하는 I have imported the canvas into a png file.가져 오기 WPF 캔버스 그래서

코드는 다음과 같습니다

private void CommandBinding_Executed(object sender, RoutedEventArgs e) 
     { 
      Rect rect = new Rect(canvas1.RenderSize); 
      RenderTargetBitmap rtb = new RenderTargetBitmap((int)rect.Right, 
       (int)rect.Bottom, 96d, 96d, System.Windows.Media.PixelFormats.Default); 
      rtb.Render(canvas1); 
      //endcode as PNG 
      Microsoft.Win32.SaveFileDialog dl1 = new Microsoft.Win32.SaveFileDialog(); 
      dl1.FileName = "Sample Image"; 
      dl1.DefaultExt = ".png"; 
      dl1.Filter = "Image documents (.png)|*.png"; 
      Nullable<bool> result = dl1.ShowDialog(); 
      if (result == true) 
      { 
       string filename = dl1.FileName; 
       BitmapEncoder pngEncoder = new PngBitmapEncoder(); 
       pngEncoder.Frames.Add(BitmapFrame.Create(rtb)); 

       //save to memory stream 
       System.IO.MemoryStream ms = new System.IO.MemoryStream(); 

       pngEncoder.Save(ms); 
       ms.Close(); 
       System.IO.File.WriteAllBytes(filename, ms.ToArray()); 
       Console.WriteLine("Done"); 

      } 

     } 

지금

I want to import an image (png file) back to canvas in my application,는, 즉 WPF 캔버스에 PNG 이미지를 엽니 다.

이미지 파일을 WPF의 캔버스에 가져올 수있는 c# 코드를 친절하게 덤프하십시오.

답변

3

나는 이것이 당신이 찾고있는 것이라고 생각하니? 크리슈나에

ImageBrush brush = new ImageBrush(); 
brush.ImageSource = new BitmapImage(new Uri(@"mypictures\savedimage.png", UriKind.Relative)); 
canvas.Background = brush; 
+1

감사 @Krishna 선생님, 나를 위해 좋은 작품 ... –

2

덕분에, 가장 좋은 방법은 다음과 같습니다

private void Open_Image(object sender, RoutedEventArgs e) 
{ 
    Microsoft.Win32.OpenFileDialog dl1 = new Microsoft.Win32.OpenFileDialog(); 
    dl1.FileName = "MYFileSave"; 
    dl1.DefaultExt = ".png"; 
    dl1.Filter = "Image documents (.png)|*.png"; 
    Nullable<bool> result = dl1.ShowDialog(); 

    if (result == true) 
    { 
     string filename = dl1.FileName; 
     ImageBrush brush = new ImageBrush(); 
     brush.ImageSource = new BitmapImage(new Uri(@filename, UriKind.Relative)); 
     canvas1.Background = brush; 
    } 
}