public void DownloadWallpaper() { var cache = new ImageCache(); var creator = new WallpaperCreator(); var insectNames = cache.InsectList.Take(2).ToList(); var dummyDownloader = cache.GetDownloader(insectNames.First()); var level = dummyDownloader.WallpaperLevel(1920, 1080); var insects = cache.Download(insectNames, level, true).ToList(); creator.CreateWallpapers(insects, 1920, 1080, true, 50); }
private void OnExecute(CommandLineApplication app) { // Check parameters if (WallpaperWidth <= 0 || WallpaperHeight <= 0) { app.Error.WriteLine("Wallpaper width and height need to be positive."); app.ShowHint(); return; } if (WallpaperBorder <= 0 || WallpaperBorder >= WallpaperWidth || WallpaperBorder >= WallpaperHeight) { app.Error.WriteLine("Wallpaper border must be positive and cannot be larger than the width or height."); app.ShowHint(); return; } // List all insects if (ListInsects) { foreach (var insect in Cache.InsectList) { app.Out.WriteLine(insect); } return; } // All other commands require a list of insects to work on if (!TryGetInsects(app, out var insectNames) || !insectNames.Any()) { return; } // List all resolutions for each selected insect if (ListResolutions) { var maxWidth = insectNames.Select(name => name.Length).Max(); foreach (var insectName in insectNames) { app.Out.WriteLine($"{insectName.PadRight(maxWidth)} {string.Join(", ", Cache.GetDownloader(insectName).GetLevels())}"); } return; } /* * Find an appropriate quality level for wallpaper generation * This is just a heuristic, because: * - When trimming, the resolution might drop under the given size. * - Different images might have different quality definitions. */ if (!Level.HasValue && WallpaperGenerate) { var dummyDownloader = Cache.GetDownloader(insectNames.First()); Level = dummyDownloader.WallpaperLevel(WallpaperWidth, WallpaperHeight); } // Download all selected insects var insects = Cache.Download(insectNames, Level, ForceDownload).ToList(); // Create wallpapers if (WallpaperGenerate) { Creator.CreateWallpapers(insects, WallpaperWidth, WallpaperHeight, WallpaperTrim, WallpaperBorder); } }