将图像加载到writeablebitmap中

时间:2012-09-02 22:16:39

标签: c# silverlight writeablebitmap

所以我试图将图像加载到WriteableBitmap中,但我得到了NullReferenceException。无法弄清楚为什么,因为我认为这曾经在

之前发挥作用

BitmapImage b = new BitmapImage(new Uri(@"images/Car.jpg", Urikind.Relative));     WriteableBitmap wb = new WriteableBitmap(b);

就是这样。我将汽车图像作为我项目中的资源。它工作正常,因为我可以创建一个Image控件并将其源设置为BitmapImage并显示它。 感谢

1 个答案:

答案 0 :(得分:11)

从其他SO问题可以看出,您获得空引用异常的原因似乎是BitmapImage.CreateOptions Property默认值为BitmapCreateOptions.DelayCreation。您可以将其设置为BitmapCreateOptions.None并在加载图片后创建WriteableBitmap

BitmapImage img = new BitmapImage(new Uri("somepath",UriKind.Relative));
img.CreateOptions = BitmapCreateOptions.None;
img.ImageOpened += (s, e) =>
   {
       WriteableBitmap wbm = new WriteableBitmap((BitmapImage)s);
   };

使用该代码,WritableBitmap将等到加载BitmapImage,然后才能将其分配到WritableBitmap