Пример #1
0
 public async Task ExecuteAsync(
     MediaProcessorContext context,
     CancellationToken cancellationToken)
 {
     context.Thumbnails = await _thumbnailService.GenerateAllThumbnailAsync(
         context.Image,
         cancellationToken);
 }
Пример #2
0
        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);
        }