MemoryStream and BitmapSource
- by Vinjamuri
I have a MemoryStream of 10K which was created from a bitmap of 2MB and compressed using JPEG. Since MemoryStream can’t directly be placed in System.Windows.Controls.Image for the GUI, I am using the following intermediate code to convert this back to BitmapImage and eventually System.Windows.Controls.Image.
System.Windows.Controls.Image image = new System.Windows.Controls.Image();
BitmapImage imageSource = new BitmapImage();
s.SlideInformation.Thumbnail.Seek(0, SeekOrigin.Begin);
imageSource.BeginInit();
imageSource.CacheOption = BitmapCacheOption.OnDemand;
imageSource.CreateOptions = BitmapCreateOptions.DelayCreation;
imageSource.StreamSource = s.SlideInformation.Thumbnail;
imageSource.EndInit();
imageSource.Freeze();
image.Source = imageSource;
ret = image.Source;
My question is, when I store this in BitmapImage, the memory allocation is taking around
2MB. Is this expected? Is there any way to reduce the memory?
I have around 300 thumbnails and this converstion takes around 600MB, which is very high.
Appreciate your help!