我在诺基亚Lumia 930上使用MediaCapture拍照(使用默认分辨率,在我的情况下为500万像素)。我认为使用MediaCapture拍摄的照片质量远低于相机应用拍摄的照片质量。它们的颜色较少,有点暗,前景稍微模糊。
我尝试将焦距,亮度,对比度,曝光和白平衡设置为自动(就像在我的情况下在相机应用程序中),但TrySetAuto方法始终返回false(表示它不起作用)。
可能有什么不对?我怎样才能提高MediaCapture拍摄的照片质量。是TrySetAuto马车吗?
以下是我用于创建和初始化MediaCapture的代码:
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);
}