프로그래밍/WPF

[WPF] canvas 내용을 비트맵 이미지로 저장

흔한티벳여우 2021. 9. 9. 15:00
반응형

canvas에 있는 내용을 그대로 화면으로 캡쳐하여 비트맵 파일로 저장하는 방법이다.

 

일단 저장을 원하는 Canvas Control에 x:Name을 지정한다. 여기선 그냥 canvas라고 지정하였다.

 

canvas에 그리기 원하는 내용을 넣는다.

 

아래의 코드를 실행시킨다.

 

RenderTargetBitmap rtb = new RenderTargetBitmap((int)canvas.ActualWidth, (int)canvas.ActualHeight, 96, 96, PixelFormats.Pbgra32);
rtb.Render(canvas);

using (Stream stream = new FileStream(System.Environment.CurrentDirectory + @"\background.bmp", FileMode.Create, FileAccess.Write, FileShare.None))
{
	PngBitmapEncoder encoder = new PngBitmapEncoder();
	encoder.Frames.Add(BitmapFrame.Create(rtb));
	encoder.Save(stream);
}

 

위의 코드를 실행시키면 해당 경로에 background.bmp라는 이름으로 저장된다.

끝!!

반응형