public async Task RenderFullQualityImage() { using (var source = KnownImages.Nurse.ImageSource) using (var annotations = KnownImages.NurseScribbles.ImageSource) using (var segmenter = new InteractiveForegroundSegmenter(source, Color.FromArgb(255, 255, 255, 255), Color.FromArgb(255, 255, 255, 0), annotations)) using (var effect = new FocusObjectDepthOfFieldEffect(source, segmenter, new Point(0, 0.8), new Point(1, 0.8), 1.0, 1.0, DepthOfFieldQuality.Full)) using (var renderer = new JpegRenderer(effect)) { var buffer = await renderer.RenderAsync(); ImageResults.Instance.SaveToPicturesLibrary(buffer); } }
protected override MaybeTask <IImageProvider> GetEffectInternalAsync(IImageProvider source, Windows.Foundation.Size sourceSize, Windows.Foundation.Size renderSize) { if (m_effectEffect == null) { m_segmenter = new InteractiveForegroundSegmenter(source, foreground, background, m_scribbles); m_segmenter.Quality = 0.5; m_effectEffect = new FocusObjectDepthOfFieldEffect(source, m_segmenter, new Point(0.0, 0.7), new Point(1.0, 0.75), 1.0, 1.0, DepthOfFieldQuality.Preview); } else if (m_effectEffect.Source != source) { m_effectEffect.Source = source; } return(new MaybeTask <IImageProvider>(m_effectEffect)); }