WPF에서 시각적 요소를 이미지로 출력하는 방법은 다음과 같습니다:
- RenderTargetBitmap 클래스의 인스턴스를 생성하여 시각적 내용을 렌더링합니다.
- RenderTargetBitmap.Render 메서드를 호출하여 시각적 요소를 비트맵에 렌더링합니다.
- PngBitmapEncoder 또는 JpegBitmapEncoder 클래스의 인스턴스를 생성하여 비트맵을 이미지로 인코딩합니다.
- 인코더의 Encoder.Frames 속성을 사용하여 렌더링된 비트맵을 프레임 컬렉션에 추가합니다.
- 파일에 인코딩된 이미지를 저장하기 위해 FileStream을 생성하거나 다른 스트림을 사용합니다.
- BitmapEncoder.Save 메서드를 호출하여 이미지를 저장합니다.
using System.IO;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;
public void PrintVisualToImage(Visual visual, string filePath)
{
// RenderTargetBitmap 생성
var renderTargetBitmap = new RenderTargetBitmap(
(int)visual.RenderSize.Width,
(int)visual.RenderSize.Height,
96, // dpi X
96, // dpi Y
PixelFormats.Pbgra32);
// 비트맵에 시각적 요소 렌더링
renderTargetBitmap.Render(visual);
// PngBitmapEncoder 또는 JpegBitmapEncoder 생성
var bitmapEncoder = new PngBitmapEncoder(); // 또는 JpegBitmapEncoder
// 렌더링된 비트맵을 프레임 컬렉션에 추가
bitmapEncoder.Frames.Add(BitmapFrame.Create(renderTargetBitmap));
// 이미지를 저장하기 위해 FileStream 생성
using (var stream = new FileStream(filePath, FileMode.Create))
{
// 이미지 저장
bitmapEncoder.Save(stream);
}
}
// "myVisual"이라는 WPF 시각적 요소가 있다고 가정합니다.
PrintVisualToImage(myVisual, "C:\\경로\\output.png");
'Dev > WPF' 카테고리의 다른 글
Winform Chart (0) | 2024.06.22 |
---|---|
nuget 설정 (0) | 2023.04.17 |
댓글