Meine App sollte ein Bild von der Kamera speichern. Ich schrieb den folgenden Code:Bild vor dem Speichern in Windows Phone 8.1 drehen
Methode, die die Kamera initialisiert.
Windows.Media.Capture.MediaCapture takePhotoManager; public async void InitializeCamera() { takePhotoManager = new Windows.Media.Capture.MediaCapture(); await takePhotoManager.InitializeAsync(); takePhotoManager.SetPreviewRotation(VideoRotation.Clockwise90Degrees); PhotoPreview.Source = takePhotoManager; await takePhotoManager.StartPreviewAsync(); // to stop it //await takePhotoManager.StopPreviewAsync(); }
Methode, die ein Foto speichert:
public async void SavePhoto() { ImageEncodingProperties imgFormat = ImageEncodingProperties.CreateJpeg(); var file = await KnownFolders.PicturesLibrary.CreateFileAsync("Photo.jpg", CreationCollisionOption.ReplaceExisting); await takePhotoManager.CapturePhotoToStorageFileAsync(imgFormat, file); }
Vorschau
<CaptureElement x:Name="PhotoPreview" FlowDirection="LeftToRight" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="UniformToFill"> </CaptureElement>
Ich habe zwei Probleme: 1. Die Vorschau nicht den ganzen Raum füllt
- Nach dem Speichern bekomme ich so etwas: (ohne Rotation und mit transparenten Schichten auf beiden Seiten).
Dank
Vielleicht Antwort auf [diese Frage] (http://stackoverflow.com/q/23709547/2681948) wird helfen. Sie können auch einige Informationen finden [hier in diesem Beitrag] (http://www.romasz.net/how-to-take-a-photo-in-windows-runtime/). – Romasz
Danke, es löst mein Problem mit transparenten Räumen verbunden. Leider habe ich immer noch Probleme mit dem Bild nach dem Speichern zu drehen und den gesamten Platz in der Vorschau zu füllen. – pbalut
Haben Sie versucht mit: 'HorizontalAlignment =" Strech "VerticalAlignment =" Strech "' von * CaptureElement * in XAML? – Romasz