-
[WPF Tip] Canvas를 PNG로 저장하기Microsoft .NET/WPF Tip 2019. 4. 30. 17:35
Canvas를 PNG로 저장하기 위해서는 DPI 값이 필요합니다.
DPI는 모니터의 해상도 단위이며 1인치당 몇 개의 도트를 출력할 수 있는지를 말합니다.
DPI 구하는 방법은 하단 링크에서 설명합니다.
Canvas를 PNG로 저장하기 위해서는 아래와 같은 using 지시문을 추가해야합니다.
using System.IO; using System.Windows; using System.Windows.Media; using System.Windows.Media.Imaging;
이제 사용 준비는 모두 끝났으니 Canvas에 도형등을 그리고 아래와 같이 PNG File로 저장합니다.
//Canvas의 출력 영역 Rect bounds = VisualTreeHelper.GetDescendantBounds(canvas); //DPI double dpi = Screen.ScreenInformations.RawDpi; //시각적 개체를 비트맵으로 변환 RenderTargetBitmap renderBitmap = new RenderTargetBitmap ( (int)bounds.Width, (int)bounds.Height, dpi, dpi, PixelFormats.Default ); renderBitmap.Render(canvas); //PNG File 저장 using (Stream stream = new FileStream(@"..\temp.png", FileMode.Create, FileAccess.Write, FileShare.None)) { PngBitmapEncoder encoder = new PngBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(renderBitmap)); encoder.Save(stream); }
'Microsoft .NET > WPF Tip' 카테고리의 다른 글
[WPF Tip] 쿼리 표현식을 이용한 검색(A query expression) (0) 2019.07.15 [WPF Tip] Control의 Style을 별도로 관리하고 손쉽게 불러오기 (0) 2019.05.29 [WPF Tip] ObservableCollection (0) 2019.03.07 [WPF Tip] xaml에서 상수 등록하기 (0) 2019.03.07