Dev::DotNet/WPF
WPF 에서 Image 파일 로드시 속도 / 메모리 관련 소소한 Tip
isfry
2016. 12. 22. 17:59
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;
수백 장의 이미지를 읽어들일 경우,
상당한 속도와 메모리를 절약할 수 있다.