Reputation:
I'm using a class library that generates a large ImageSource, > 3000x3750 pixels. I would like to convert this ImageSource to BitmapImage so that I can take advantage of DecodePixelWidth or DecodePixelHeight instead of resizing it everytime this image is generated.
I need to display this image for the user first, and most of the users have a screen resolution of 1024x768, I'm binding this ImageSource to an Image control for this, but it can be noticed how "heavy" it is.
How can I do this? Or what is the best solution for this case?
thanks!
Upvotes: 16
Views: 51284
Reputation: 692
Try doing:
myBitmapImage = myImageSource as BitmapImage;
That works well.
Upvotes: 24
Reputation: 147451
The BitmapImage
type inherits BitmapSource
and ultimately ImageSource
(both of which are abstract classes). You need to check what the actual type of your object is, i.e. check object.GetType().Name
. If you're in luck, it may actually be returning a BitmapSource
object and you will simply need to cast it to that type before being able to use it as such.
Upvotes: 7