我正在处理这个答案,试图将 ImageSource 转换为 BitmapImage。我在 WPF 画布上有一个 Image 控件,其源是位图,我想将此控件的源属性提取到一个变量(这将是一个 ImageSource)中,然后将其转换为 BitmapImage。
我的代码如下:
ImageSource source = MyImage.Source;
BitmapImage image = (BitmapImage) source;
它与链接答案中的代码基本相同,但我在第二行(我试图投射的地方)收到以下运行时错误:
无法将类型为“System.Windows.Media.Imaging.BitmapFrameDecode”的对象转换为类型“System.Windows.Media.Imaging.BitmapImage”。
我猜合乎逻辑的答案是这根本无法做到,但链接的答案被接受,有一个好评和四个令人沮丧的赞成票。我正在使用带有 .Net 4.5 的 Visual Studio 2012,我尝试针对 4.0、3.5 和 3.0 进行编译,并且看到了同样的问题。
我也在这里尝试了Ashura的建议,结果只是 null (就像每当我使用as关键字而不是将结果变量的值强制转换为 null 时一样)。
在我的 XAML 中,我的 Image 控件的源属性是一个*.bmp文件,我最终试图将它传递给 WriteableBitmap,但我需要有一个 BitmapImage 才能传递给 WriteableBitmap 的构造函数。
所以我的问题是,我做错了什么?如何从 ImageSource 转换为 BitmapImage?