所以我试图将图像加载到WriteableBitmap中,但我得到了NullReferenceException。无法弄清楚为什么,因为我认为这曾经在
之前发挥作用 BitmapImage b = new BitmapImage(new Uri(@"images/Car.jpg", Urikind.Relative));
WriteableBitmap wb = new WriteableBitmap(b);
就是这样。我将汽车图像作为我项目中的资源。它工作正常,因为我可以创建一个Image控件并将其源设置为BitmapImage并显示它。 感谢
答案 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
。