如何更改 UWP 的媒体捕获照片分辨率?

How to change media capture photo resolution for UWP?

所以我有一些代码可以使用此代码在 UWP 应用程序(运行 在 windows 台式机和手机上)中拍照。

await _mediaCapture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreateJpeg(), stream);

它工作得很好,但它总是以设备的全分辨率拍摄图像……(所以在 Lumia 1020 上为 44 兆像素)这对我来说太大了。我想将分辨率限制为固定大小(比如大约 16 兆像素)。

那么有没有办法设置相机捕获分辨率,或者我必须以全分辨率捕获它并自己缩小它?

您应该能够在初始化后通过 setting MediaStreamProperties 更改 MediaCapture 元素的分辨率:

// initialization here

// get available resolutions
var resolutions = captureManager.VideoDeviceController.GetAvailableMediaStreamProperties(MediaStreamType.Photo).ToList();
// set used resolution
await captureManager.VideoDeviceController.SetMediaStreamPropertiesAsync(MediaStreamType.Photo, resolutions[1]);