2016-04-28 7 views
0

Ich versuche, AdvancedPhotoCapture zu verwenden, um eine SoftwareBitmap zu erhalten, aber die resultierende CapturedPhoto.Frame.SoftwareBitmap ist null. Wie kann ich eine SoftwareBitmap erhalten, damit ich sie auf dem Bildschirm anzeigen kann? ErsetzenCapturedPhoto.Frame.SoftwareBitmap ist null

//create mediacapture 
mediaCapture = new MediaCapture(); 
await mediaCapture.InitializeAsync(); 

// check if supported 
var settings = new AdvancedPhotoCaptureSettings 
{ 
    Mode = AdvancedPhotoMode.Standard 
}; 

//configure capture 
if (!mediaCapture.VideoDeviceController.AdvancedPhotoControl.SupportedModes.Contains(settings.Mode)) 
{ 
    Debug.WriteLine("Mode not supported"); 
    return; 
} 
mediaCapture.VideoDeviceController.AdvancedPhotoControl.Configure(settings); 
var adv = await mediaCapture.PrepareAdvancedPhotoCaptureAsync(ImageEncodingProperties.CreateJpeg()); 

// take photo 
var capturedPhoto = await adv.CaptureAsync(); 
Debug.WriteLine(capturedPhoto.Frame.SoftwareBitmap == null); 

Antwort

1

ImageEncodingProperties.CreateJpeg() 

mit

ImageEncodingProperties.CreateUncompressed(MediaPixelFormat.Bgra8) 

Für AdvancedPhotoCapture, VariablePhotoSequence, LowLagCaptureSequence usw. Das SoftwareBitmap nur gefüllt werden, wenn sie mit einem unkomprimierten Format kodiert.