2011-09-08 115 views
0

使用PhotoCamera时,必须创建PhotoCamera的实例以及VideoBrush - 然后在摄像机初始化之前将该PhotoCamera实例分配给VideoBrush实例的源。例如:为什么PhotoCamera需要VideoBrush?

PhotoCamera camera; 
VideoBrush brush; 

camera = new PhotoCamera(); 
camera.Initialized += CameraInitialized; 

brush = new VideoBrush(); 
brush.SetSource(camera); 

的的VideoBrush是在显影剂希望通过的VideoBrush实例与视觉对象的像Canvas.Background或Rectangle.Fill刷关联到创建的相机的视频流的取景器情景清楚地有用。然而,如果情况并非如此,要求开发者仍然通过创建VideoBrush的动作乍一看似乎是随机的。

所以有两个问题,为什么PhotoCamera总是需要与VideoBrush关联?

与将PhotoCamera附加到VideoBrush相关联的性能影响是什么?特别是如何调用GetPreviewBuffer(Argb | Y | YCbCr)受关联的VideoBrush影响?

谢谢!

PS。希望这不会像指出的那样脱落,我只想更好地理解为什么这个要求存在 - 以及它如何影响性能。

PPS。对于芒果WP7 SDK的改进是惊人的 - 我期待着看到现在人们已经开始了对传感器的访问。

+1

那么,为什么不呢?您是否想使用没有在屏幕上显示图片的相机?你有没有试过用刷子操作相机? –

+0

我在这里没有明确说明,但不是,在我的应用程序中VideoBrush的唯一作用是触发PhotoCamera的初始化。我的视觉效果来源于PreviewBuffer +图像处理中的数据。 –

回答

0

在芒果中,您只需有两个选项,或者按照上面的建议在您的应用(视频帧)中使用一帧来拍照,实质上是从视频画笔中抓取一帧。 或者您也可以使用旧的NoDo方法来使用PhotoChooser任务,它将分别启动框架相机应用程序并返回图像。

很明显,这两种方法的亲和缺点,所以只选择一个适合你的。