首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我试图从ImageSource转换为BitmapImage时,为什么会得到一个运行时错误?

当我试图从ImageSource转换为BitmapImage时,为什么会得到一个运行时错误?
EN

Stack Overflow用户
提问于 2012-12-19 10:39:57
回答 1查看 2.8K关注 0票数 1

我正在this answer工作,试图将ImageSource转换为BitmapImage。我在WPF画布上有一个图像控件,其源是位图,我希望将该控件的源属性提取为变量(将是ImageSource),然后将其转换为BitmapImage。

我的代码如下:

代码语言:javascript
运行
复制
ImageSource source = MyImage.Source;
BitmapImage image = (BitmapImage) source;

它基本上与链接答案中的代码相同,但在第二行(我试图转换的地方)得到了以下运行时错误:

无法将'System.Windows.Media.Imaging.BitmapFrameDecode‘类型的对象转换为“System.Windows.Media.Imaging.BitmapImage”。

合乎逻辑的答案是,这是根本无法做到的,但答案链接被接受,有一个有利的意见和四个向上,这是令人沮丧的。我正在使用Visual 2012与.Net 4.5,我试图编译针对4.0,3.5和3.0,并看到了同样的问题。

我还尝试了Ashura的建议here,结果只是null (就像每当我使用as关键字而不是强制转换结果变量为null的时候一样)。

在我的XAML中,我的图像控件的源属性是一个*.bmp文件,我最终试图将它发送到WriteableBitmap,但是我需要有一个BitmapImage才能传递给WriteableBitmap的构造函数。

所以我的问题是,我做错了什么?如何将ImageSource转换为BitmapImage?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-19 11:07:40

谢谢大家的评论,你帮助我理解了这个问题。

最后,我从XAML中取出了Source属性,并在窗口加载的事件中设置了下面的内容,以确保图像控件的Source属性确实是BitmapImage:

代码语言:javascript
运行
复制
private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
    var image = new BitmapImage(new Uri("sample.bmp", UriKind.Relative));
    MyImage.Source = image;
}

如果在XAML中执行此操作,源属性在默认情况下将成为BitmapFrameDecode对象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13950499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档