private async Task <IRandomAccessStream> GetFilteredThumbnailStreamAsync() { #if DEBUG System.Diagnostics.Debug.WriteLine("GetFilteredThumbnailStreamAsync invoked " + this.GetHashCode()); #endif IRandomAccessStream filteredStream = null; using (var ticket = await TicketManager.AcquireTicket()) using (var stream = await _photo.GetThumbnailAsync()) { if (Filters.Count > 0) { var list = Filters.Select(filter => filter.GetFilter()).ToList(); filteredStream = new InMemoryRandomAccessStream(); using (var source = new RandomAccessStreamImageSource(stream)) using (var effect = new FilterEffect(source) { Filters = list }) using (var renderer = new JpegRenderer(effect)) { var buffer = await renderer.RenderAsync(); await filteredStream.WriteAsync(buffer); } } else { filteredStream = stream.CloneStream(); } } return(filteredStream); }