2011-09-08 104 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任務,它將分別啓動框架相機應用程序並返回圖像。

很明顯,這兩種方法的親和缺點,所以只選擇一個適合你的。