private async Task UpdateResultsAsync(ImageAnalyzer img) { try { DetectedFaceCollection.Clear(); if (img.DetectedFaces.Any()) { // extract crops from the image IList <DetectedFaceViewModel> detectedFaceViewModels = GetDetectedFaceViewModels(img.DetectedFaces, img.IdentifiedPersons); var stream = img.ImageUrl == null ? await img.GetImageStreamCallback() : new MemoryStream(await new HttpClient().GetByteArrayAsync(img.ImageUrl)); using (stream) { var faces = await Util.GetImageCrops(detectedFaceViewModels, i => i.FaceRectangle.ToRect(), stream.AsRandomAccessStream()); if (faces != null) { DetectedFaceCollection.AddRange(faces); } } } CurrentDetectedFace = DetectedFaceCollection.FirstOrDefault(); this.notFoundGrid.Visibility = DetectedFaceCollection.Any() ? Visibility.Collapsed : Visibility.Visible; } finally { this.progressRing.IsActive = false; } }
private void DisplayProcessingUI() { CurrentDetectedFace = null; DetectedFaceCollection.Clear(); this.progressRing.IsActive = true; }