Windows runtime MediaCapture:与摄像头应用程序和TrySetAuto不工作相比,质量较低
我在诺基亚Lumia 930上使用MediaCapture拍照(在我的情况下使用默认分辨率为5MP)。我认为使用MediaCapture拍摄的照片的质量明显低于使用camera应用程序拍摄的照片的质量。它们的颜色不太饱满,有点暗,前景有点模糊 我试图将焦距、亮度、对比度、曝光和白平衡设置为自动(就像在我的相机应用程序中一样),但TrySetAuto方法总是返回false(表明它不起作用) 有什么不对劲吗?如何提高MediaCapture拍摄的照片的质量。TrySetAuto车吗 以下是我用于创建和初始化MediaCapture的代码:Windows runtime MediaCapture:与摄像头应用程序和TrySetAuto不工作相比,质量较低,windows-runtime,windows-phone-8.1,Windows Runtime,Windows Phone 8.1,我在诺基亚Lumia 930上使用MediaCapture拍照(在我的情况下使用默认分辨率为5MP)。我认为使用MediaCapture拍摄的照片的质量明显低于使用camera应用程序拍摄的照片的质量。它们的颜色不太饱满,有点暗,前景有点模糊 我试图将焦距、亮度、对比度、曝光和白平衡设置为自动(就像在我的相机应用程序中一样),但TrySetAuto方法总是返回false(表明它不起作用) 有什么不对劲吗?如何提高MediaCapture拍摄的照片的质量。TrySetAuto车吗 以下是我用于创建
private async Task CreateMediaCapture()
{
this.mediaCapture = new MediaCapture();
// Initialize the media capture
var settings = new MediaCaptureInitializationSettings
{
VideoDeviceId = this.deviceInfoCollection[this.DeviceListBox.SelectedIndex].Id
};
await this.mediaCapture.InitializeAsync(settings);
// Set focus, brightness, contrast, exposure and white balance to Auto
// TODO: This does nothing so far. Photos made with MediaCapture still have a lower quality than
// photos made with the Camera App. They have less color, are darker and slightly blurry in the
// foreground
if (mediaCapture.VideoDeviceController.Focus.TrySetAuto(true) == false)
{
Debug.WriteLine("Setting Focus to auto did not work");
}
if (mediaCapture.VideoDeviceController.Brightness.TrySetAuto(true) == false)
{
Debug.WriteLine("Setting Brightness to auto did not work");
}
if (mediaCapture.VideoDeviceController.Contrast.TrySetAuto(true) == false)
{
Debug.WriteLine("Setting Contrast to auto did not work");
}
if (mediaCapture.VideoDeviceController.Exposure.TrySetAuto(true) == false)
{
Debug.WriteLine("Setting Exposure to auto did not work");
}
if (mediaCapture.VideoDeviceController.WhiteBalance.TrySetAuto(true) == false)
{
Debug.WriteLine("Setting WhiteBalance to auto did not work");
}
}
以下是拍摄照片的代码(具有现有预览):
private async Task TakePhotoAsync
{
ImageEncodingProperties imageFormat = ImageEncodingProperties.CreateJpeg();
// Create a storage file in the picture library
StorageFile photoFile = null;
this.DisplayInfo("Creating storage file ...");
photoFile = await KnownFolders.PicturesLibrary.CreateFileAsync(
"TestPhoto.jpg", CreationCollisionOption.GenerateUniqueName);
// Take photo
await this.mediaCapture.CapturePhotoToStorageFileAsync(imageFormat, photoFile);
}