2013-02-20 22 views
1

我的微軟高清網絡攝像頭支持16:9的寬高比。我可以從Microsoft LifeCam實用程序以16:9的寬高比預覽和捕獲。Windows 8 - XAML/C#如何設置相機的寬高比

在我的應用程序中,預覽僅以4:3的寬高比顯示。有沒有辦法將它設置爲16:9?我搜索了它,搜索了MSDN API,但是找不到辦法。

到目前爲止我看起來像這樣的代碼:

XAML <CaptureElement x:Name="CameraCaptureElement" Stretch="Uniform" ></CaptureElement>

C#代碼

private async void InitializeCamera() 
{ 
MediaCapture mediaCaptureMgr = new Windows.Media.Capture.MediaCapture(); 
await mediaCaptureMgr.InitializeAsync(); 
CameraCaptureElement.Source = mediaCaptureMgr; 
await mediaCaptureMgr.StartPreviewAsync(); 
} 

回答

0

我不認爲有一個設置使用MediaCapture寬高比的API ,所以如果寬高比選擇對您很重要,您可能需要考慮使用CameraCaptureUI,儘管CameraCaptureUI會將源寬高比的選擇留在用戶手中(不過,您可以編程如果用戶選擇裁剪原始捕捉,則在邏輯上控制裁剪圖像的起始縱橫比)。

看看下面的示例:

http://code.msdn.microsoft.com/windowsapps/CameraCaptureUI-Sample-845a53ac

它展示瞭如何使用CameraCaptureUI對象,設置裁剪縱橫比,這是你可以通過編程做的最好的,我相信。以下是相關的代碼:

CameraCaptureUI dialog = new CameraCaptureUI(); 
Size aspectRatio = new Size(16, 9); 
dialog.PhotoSettings.CroppedAspectRatio = aspectRatio; 

您還可以限制用戶可以選擇的最大分辨率,但不限制捕獲寬高比。

當CameraCaptureUI通過CaptureFileAsync調用,用戶必須調整通過攝像機選項按鈕的寬高比的選項,如下圖所示:

Camera Options

有關Windows應用商店的應用開發更多的信息,註冊Generation App

0

您可以在CameraCaptureElement上設置Clip將預覽剪輯到所需的寬高比。然後在拍攝照片後 - 您需要裁剪照片。

+1

我有一些問題與此有關。當在1366x768表面設備上以高分辨率[1280x800]連續拍攝照片時,每次看起來像在屏幕上來回跳動,因爲圖像剛剛閃爍在捕捉元件上。根據維護高寬比,我將Capture元素的高度和寬度設置爲1228.788和768。但它沒有處理效果。你能提供任何指導方針嗎? – asitis 2014-05-28 05:08:34

+0

對不起,我不知道。我會在這裏或MSDN論壇上單獨提問,以獲得更好的可見性。 – 2014-05-28 15:51:47

+0

你可以請檢查這個http://stackoverflow.com/questions/23808547/how-to-capture-high-resolution-video-and-capture-photo-from-it-in-windows-8-1-i – asitis 2014-05-28 16:09:27

相關問題