/// <summary> /// Renders current image with applied filters to a buffer and returns it. /// Meant to be used where the filtered image is for example going to be /// saved to a file. /// </summary> /// <returns>Buffer containing the filtered image data</returns> public async Task<IBuffer> RenderFullBufferAsync() { IBuffer buffer; try { buffer = await _session.RenderToJpegAsync(); } catch (Exception ex) { buffer = null; } return buffer; }
//extract Oriented ROI public IBuffer GenerateOrientedROIPicture() { session.UndoAll(); var currentSize = new Size( outputSize.Width / currentScale, outputSize.Height / currentScale); var corner = new Point(currentPos.X - currentSize.Width / 2, currentPos.Y - currentSize.Height / 2); session.AddFilter(CreateOrientedROIFilter(new Rect(corner, currentSize), currentAngle)); var task = session.RenderToJpegAsync().AsTask(); task.Wait(); return(task.Result); }
private async System.Threading.Tasks.Task Capture() { try { await camera.FocusAsync(); MemoryStream imageStream = new MemoryStream(); imageStream.Seek(0, SeekOrigin.Begin); CameraCaptureSequence sequence = camera.CreateCaptureSequence(1); sequence.Frames[0].CaptureStream = imageStream.AsOutputStream(); await camera.PrepareCaptureSequenceAsync(sequence); await sequence.StartCaptureAsync(); camera.SetProperty( KnownCameraPhotoProperties.LockedAutoFocusParameters, AutoFocusParameters.None); MediaLibrary library = new MediaLibrary(); EditingSession session = new EditingSession(imageStream.GetWindowsRuntimeBuffer()); using (session) { session.AddFilter(FilterFactory.CreateSketchFilter(SketchMode.Gray)); IBuffer data = await session.RenderToJpegAsync(); library.SavePictureToCameraRoll(FileNamePrefix + DateTime.Now.ToString() + ".jpg", data.AsStream()); } } catch (Exception ex) { Debug.WriteLine("Failed to save the image to camera roll: " + ex.ToString()); } }