如何从ImageStream获取图像?

时间:2013-09-11 09:49:37

标签: c# silverlight windows-phone-7 windows-phone-8

我在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?

谢谢!

1 个答案:

答案 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(()=>
{
    /* ... */
});