我在CaptureImageAvailable事件上获得了ImageStream。 在ContentReadyEventArgs上我有ImageStream。
我尝试通过BitmapImage将此Stream复制到Image:
Image cameraImage=new Image();
BitmapImage bImage=new BitmapImage();
private void CaptureImageAvailable(object sender, ContentReadyEventArgs e)
{
bImage.SetSource(e.ImageStream);
cameraImage.Source = bImage;
}
但是我在步骤bImage.SetSource(e.ImageStream)上有错误;
我应该如何阅读这个ImageStream?
谢谢!
答案 0 :(得分:2)
如果您不在主线程上,则无法分配Source
属性。在这种情况下,你不是。要做到这一点,只需使用Dispatcher
Image cameraImage=new Image();
BitmapImage bImage=new BitmapImage();
private void CaptureImageAvailable(object sender, ContentReadyEventArgs e)
{
Dispatcher.BeginInvoke(()=>
{
bImage.SetSource(e.ImageStream);
cameraImage.Source = bImage;
});
}
如果您不在页面内(例如,您在视图模型或其他非UI类中),请使用以下语法:
Deployment.Current.Dispatcher.BeginInvoke(()=>
{
/* ... */
});