private static async Task MainAsync(string[] args) { await Logger.Log(LogLevel.Info, "Parsing arguments..."); await ArgumentHandler.ParseArgumentsFromArray(args, out List <ParsedArgument> parsedArgs); CommandMode = !RuntimeInformation.IsOSPlatform(OSPlatform.Windows); foreach (ParsedArgument a in parsedArgs) { await Logger.Log(LogLevel.Debug, a.Command + " | " + a.Value); if (a.Command == "noui") { CommandMode = true; } if (a.Command == "source") { Settings.SourceDirectory = new DirectoryInfo(a.Value); } if (a.Command == "destination") { Settings.DestinationDirectory = new DirectoryInfo(a.Value); } if (a.Command == "onlyAlpha") { Settings.UseAlphaFormatOnly = true; } if (a.Command == "recursive") { Settings.IsRecurive = true; } if (a.Command == "onlySquare") { Settings.OnlyPassSquareImages = true; } if (a.Command == "downsize") { Settings.DownsizeLargerResolutionImages = true; } if (a.Command == "copy") { Settings.CopySkippedFiles = true; } if (a.Command == "compression") { Settings.CompressionLevel = int.Parse(a.Value); } if (a.Command == "targetWidth") { Settings.TargetImageWidth = int.Parse(a.Value); } if (a.Command == "targetHeight") { Settings.TargetImageHeight = int.Parse(a.Value); } if (a.Command == "nonAlphaFormat") { Settings.ConvertToNonAlphaValue = (SupportedNonAlphaFileTypes)int.Parse(a.Value); } if (a.Command == "alphaFormat") { Settings.ConvertToAlphaValue = (SupportedAlphaFileTypes)int.Parse(a.Value); } } if (!CommandMode) { await Logger.Log(LogLevel.Info, "Starting Application UI."); Application.SetHighDpiMode(HighDpiMode.SystemAware); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(Form = new TooManyPixelsForm()); } else { await Logger.Log(LogLevel.Info, "Starting Application."); await ImageProcessor.Initiate(); await ImageProcessor.Run(); await ImageProcessor.PrintResults(); } }