1

我的 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();
}
4

2 回答 2

0

您可以设置一个ClipCameraCaptureElement将预览剪辑到所需的纵横比。然后在您拍摄照片后 - 您需要对其进行裁剪。

于 2013-02-20T20:29:47.017 回答
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

于 2013-02-20T17:49:48.030 回答