如何将BitmapImage从内存保存到WPF C#中的文件中?

我找不到任何东西,需要一些帮助.我已经将一堆图像作为BitmapImage类型加载到内存中,这样我就可以删除它们存储的临时目录.我已经成功完成了这一部分.现在我需要将图像保存到不同的临时位置,我无法弄清楚如何执行此操作图像包含在:

Dictionary<string, BitmapImage>

字符串是文件名.如何将此集合保存到新的临时位置?谢谢你的帮助!

最佳答案
您需要使用编码器来保存图像. PngBitmapEncoder将处理大多数常见图像类型(PNG,BMP,TIFF等).以下将拍摄图像并保存:

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);
}

我通常会将其写入扩展方法,因为它是图像处理/操作应用程序的一个非常常见的功能,例如:

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);
    }
}

这样您就可以从BitmapImage对象的实例中调用它.

转载注明原文:如何将BitmapImage从内存保存到WPF C#中的文件中? - 代码日志