본문 바로가기

Dev::DotNet/WPF

WPF 에서 Image 파일 로드시 속도 / 메모리 관련 소소한 Tip

WPF에서 이미지 파일 로드시 보통 다음과 같은 방법을 흔히 사용한다.

var image = new BitmapImage();
image.BeginInit();
image.UriSource = new Uri("d:\test.jpg", UriKind.Absolute);
image.CacheOption = BitmapCacheOption.OnLoad;
image.EndInit();


적은 양의 이미지를 로드할 때는 별문제가 발생하지 않겠지만

다량의 많은 양의 이미지를 로드할 때, 심각한 문제를 야기할 수 있다.


만약 로드한 이미지를 표시할 때, 

원본 이미지의 사이즈로 보여주는 것이 아니라 썸네일로 보여줄 때는

원본의 사이즈가 아니라 필요한 만큼의 사이즈로 읽어 들이는 것이 더 효과적일 것이다.



적당한 사이즈를 알고 있다면 

아래와 같은 코딩을 추가하면 원하는 사이즈로 이미지 사이즈를 변환하여 가져올 수 있다.

image.DecodePixelWidth = 50;
image.DecodePixelHeight = 50;


수백 장의 이미지를 읽어들일 경우,

상당한 속도와 메모리를 절약할 수 있다.

'Dev::DotNet > WPF' 카테고리의 다른 글

WebBrowser Control Zoom 조절  (0) 2017.05.17
Window 를 특정 Thread 에서 위임하는 법  (0) 2016.12.28
WPF Data Binding Error 처리  (0) 2015.03.11
Hardcodet.NotifyIcon.Wpf 의 MessageBox?  (0) 2014.10.07
단순 Event Behavior  (0) 2014.09.23