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

Dan*_*ong 3 c# win-universal-app windows-10 windows-10-mobile uwp

所以我有一些代码可以使用此代码在UWP应用程序(在Windows桌面和手机上运行)中拍照.

await _mediaCapture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreateJpeg(), stream);
Run Code Online (Sandbox Code Playgroud)

它的效果很好,但它总是以设备的全分辨率拍摄图像......(Lumia 1020上的44万像素)对我来说太大了.我想将分辨率限制在固定大小(比如大约1600万像素).

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

Rom*_*asz 9

您应该能够通过在初始化之后设置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]);
Run Code Online (Sandbox Code Playgroud)