I can't find anything over this and need some help. I have loaded a bunch of images into memory as BitmapImage types, so that I can delete the temp directory that they were stored in. I have successfully done this part. Now I need to save the images to a different temp location and I can't figure out how to do this The images are contained in a:
Dictionary<string, BitmapImage>
The string is the filename. How do I save this collection to the new temp location? Thanks for any help!
BitmapImage Class (System.Windows.Media.Imaging)Provides a specialized BitmapSource that is optimized for loading images using Extensible Application Markup Language (XAML).
You need to use an encoder to save the image. The following will take the image and save it:
BitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(image));
using (var fileStream = new System.IO.FileStream(filePath, System.IO.FileMode.Create))
{
encoder.Save(fileStream);
}
I usually will write this into an extension method since it's a pretty common function for image processing/manipulating applications, such as:
public static void Save(this BitmapImage image, string filePath)
{
BitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(image));
using (var fileStream = new System.IO.FileStream(filePath, System.IO.FileMode.Create))
{
encoder.Save(fileStream);
}
}
This way you can just call it from the instances of the BitmapImage objects.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With