void Run() { MagickWandEnvironment.Genesis(); var qr = (double)MagickWandEnvironment.QuantumRange; WriteLine(new string[] { "Quantum Range", $"{qr}" }); Console.WriteLine(); WriteLine(new string[] { "Image Name", "Mean", "StdDev", "Mean (pct)", "StdDev (pct)", "Kurtosis", "Skew" }); foreach (var file in Directory.GetFiles(_opts.PhotoRoot)) { double mean, stddev, kurtosis, skewness; using (var wand = new MagickWand(file)) { wand.AutoLevelImage(); wand.GetImageChannelMean(ChannelType.AllChannels, out mean, out stddev); wand.GetImageChannelKurtosis(ChannelType.AllChannels, out kurtosis, out skewness); WriteLine(new string[] { $"{Path.GetFileName(file)}", $"{mean}", $"{stddev}", $"{mean / qr}", $"{stddev / qr}", $"{kurtosis}", $"{skewness}" }); } } MagickWandEnvironment.Terminus(); }
Task ExecuteAsync() { MagickWandEnvironment.Genesis(); Console.WriteLine("Generating new thumbnails for photos..."); _thumbnailProcess.CreateNewPhotoThumbnails(); Console.WriteLine("Generating new thumbnails (and replacing old pngs with jpgs) for videos..."); _thumbnailProcess.CreateNewVideoThumbnails(); // var photos = await _repo.GetPhotosAsync(); // var videos = await _repo.GetVideosAsync(); // Console.WriteLine($"Found {photos.Count()} photos in db"); // Console.WriteLine($"Found {videos.Count()} videos in db"); var photoFiles = _storage.GetPhotos(); var videoFiles = _storage.GetVideos(); Console.WriteLine($"Found {photoFiles.Count()} photos on filesystem"); Console.WriteLine($"Found {videoFiles.Count()} videos on filesystem"); Console.WriteLine("Trying to gather additional metadata for video files..."); _videoMetadataGatherer.Gather(videoFiles); Console.WriteLine("Finished gathering additional metadata for video files."); WriteSqlScript(photoFiles, videoFiles); MagickWandEnvironment.Terminus(); return(Task.CompletedTask); }