无法将WPF BitmapImage序列化/添加到资源文件中



为什么我不能将类型为BitmapImage/BitmapSource/ImageSource的wpfImage添加到资源文件中。

是的,它不可序列化。。。那么我该如何解决这个问题呢?我需要用程序将位图图像放在具有键/值访问权限的资源文件中。

   using (ResXResourceWriter writer = new ResXResourceWriter("TBM.Resource"))
   {
         writer.AddResource(fileExtension, wpfImage);
         writer.Generate();
    }

Resx文件不是为与WPF图像一起使用而设计的。不过,它们可以很好地处理GDI图像,因此您可以将图像保存到System.Drawing.Bitmap中,并将其添加到资源文件中。

var encoder = new PngBitmapEncoder();
using (var stream = new MemoryStream())
{
    // Write the WPF image to the stream
    encoder.Frames.Add(BitmapFrame.Create(wpfImage));
    encoder.Save(stream);
    // Rewind the stream
    stream.Position = 0;
    // Read the stream to a GDI image
    var bitmap = (System.Drawing.Bitmap)System.Drawing.Image.FromStream(stream);
    // Add the GDI image to the resource file
    writer.AddResource(fileExtension, bitmap);
}

相关内容

  • 没有找到相关文章

最新更新