public async Task ExecuteAsync( MediaProcessorContext context, CancellationToken cancellationToken) { context.Thumbnails = await _thumbnailService.GenerateAllThumbnailAsync( context.Image, cancellationToken); }
public async Task ImportMedia() { Stream image = TestMediaLibrary.TwoFacesWithExif; MediaMetadata meta = await _metadataExtractor.GetMetadataAsync(image, default); image.Position = 0; IEnumerable <FaceData> dataData = await GetFaceData(image); image.Position = 0; IEnumerable <ThumbnailResult> thums = await _thumbnailService .GenerateAllThumbnailAsync(image, default); var media = new Media { Id = Guid.NewGuid(), MediaType = MediaType.Image, DateTaken = meta.DateTaken, GeoLocation = meta.GeoLocation, Size = image.Length }; media.Thumbnails = thums.Select(x => new MediaThumbnail { Id = Guid.NewGuid(), Data = x.Data, Format = x.Format, Dimensions = x.Dimensions, Size = x.Size }); IEnumerable <MediaFace> faces = dataData.Select(f => new MediaFace { Box = f.Box, Id = f.Id, Encoding = f.Encoding, MediaId = media.Id, RecognitionType = FaceRecognitionType.None, State = FaceState.New, Thumbnail = f.Thumbnail, }); media.FaceCount = faces.Count(); await _store.InsertMediaAsync(media, faces, default); }