728x90
C# WPF 를 사용하다 보면
크기 조정 등으로 이미지가 깨지거나 일그러질 경우
자체적으로 보완하는 함수가 존재합니다
해당 함수는
System.Windows.Media.RenderOption.SetBitmapScalingMode 함수로
해당 함수 사용 시 옵션에 따라 개선된 이미지를 제공받을 수 있습니다
사용법은
System.Windows.Media.RenderOption.SetBitmapScalingMode(this, BitmapScalingMode);
위의 방식으로 2번째 인자값에는
public enum BitmapScalingMode
{
// 요약:
// System.Windows.Media.BitmapScalingMode.Linear인 기본 비트맵 배율 조정을 사용합니다.
Unspecified = 0,
//
// 요약:
// System.Windows.Media.BitmapScalingMode.HighQuality 모드보다 빠르지만 출력 품질이 낮은 선형
// 비트맵 배율 조정을 사용합니다.
Linear = 1,
//
// 요약:
// System.Windows.Media.BitmapScalingMode.HighQuality 모드보다 빠르지만 출력 품질이 낮은 선형
// 비트맵 배율 조정을 사용합니다.System.Windows.Media.BitmapScalingMode.LowQuality 모드는 System.Windows.Media.BitmapScalingMode.Linear
// 모드와 같습니다.
LowQuality = 1,
//
// 요약:
// System.Windows.Media.BitmapScalingMode.LowQuality 모드보다 느리지만 출력 품질이 좋은 고품질
// 비트맵 배율 조정을 사용합니다.System.Windows.Media.BitmapScalingMode.HighQuality 모드는 System.Windows.Media.BitmapScalingMode.Fant
// 모드와 같습니다.
HighQuality = 2,
//
// 요약:
// 다른 모든 비트맵 배율 조정 모드보다 느리지만 출력 품질이 매우 좋은 고품질 Fant 비트맵 배율 조정을 사용합니다.
Fant = 2,
//
// 요약:
// 소프트웨어 래스터라이저가 사용되는 System.Windows.Media.BitmapScalingMode.LowQuality 모드에
// 비해 성능이 뛰어난 최근접 비트맵 배율 조정을 사용합니다.이 모드는 주로 비트맵을 확대하는 데 사용됩니다.
NearestNeighbor = 3,
}
위의 값을 사용할 수 있으며
제일 아래 NearestNeighbor 값을 쓸 경우 매우 개선된 화질의 Bitmap 이미지를 제공받습니다
하지만 단점으로는 출력이 느려진다는 단점이 존재하지만
요즘 같은 고 성능 PC 환경의 경우에는 무리가 없을 것이라 판단되네요
적용방법으로는
public MainWindow()
{
InitializeComponent();
RenderOptions.SetBitmapScalingMode(this, BitmapScalingMode.NearestNeighbor);
}
위와 같이 적용하면 됩니다
제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀
728x90
'Application > C# (WPF)' 카테고리의 다른 글
[C# WPF] GIF 파일 재생하기 (MediaElement) (0) | 2023.01.18 |
---|---|
[C# WPF] Background 이미지 설정하기 (0) | 2023.01.17 |
[C# WPF] X / Y 좌표로 Margin 위치 구하기 (0) | 2023.01.13 |
[C# WPF] 마우스 올렸을때 변화 주기 (IsMouseOver Trigger) (0) | 2023.01.12 |
[C# WPF] 함수에서 다중 인자 값 넘겨 받기 (0) | 2023.01.11 |