我的Microsoft HD网络摄像头支持16:9宽高比。我可以从Microsoft LifeCam实用程序中以16:9的宽高比预览和捕获。
在我的应用程序中,预览仅以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 :(得分: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;
您还可以限制用户可以选择的最大分辨率,但不能限制捕获宽高比。
当通过CaptureFileAsync调用CameraCaptureUI时,用户可以通过Camera Options按钮调整宽高比,如下所示:
有关Windows应用商店应用开发的详细信息,请注册Generation App。
答案 1 :(得分:0)
您可以在Clip
上设置CameraCaptureElement
,将预览剪辑为所需的宽高比。然后在拍摄照片后 - 你需要裁剪它。