public HIPFileInfo(string path, HIPEncoding hipEncoding, bool layeredImage = false, int offsetX = 0, int offsetY = 0, int canvasWidth = 0, int canvasHeight = 0, ByteOrder endianness = ByteOrder.LittleEndian) : base(path) { Endianness = endianness; var ext = Path.GetExtension(path).ToLower(); if (ImageTools.nativeImageExtensions.Contains(ext) || ext == ".dds") { CreateHIP(path, hipEncoding, layeredImage, offsetX, offsetY, canvasWidth, canvasHeight); } }
public HIPFileInfo(string path, HIPEncoding hipEncoding, ref HIPFileInfo refHIPFileInfo, ByteOrder endianness = ByteOrder.LittleEndian) : base(path) { Endianness = endianness; var ext = Path.GetExtension(path).ToLower(); if (ImageTools.nativeImageExtensions.Contains(ext) || ext == ".dds") { CreateHIP(path, hipEncoding, Convert.ToBoolean(refHIPFileInfo.EncodingParams[2]), refHIPFileInfo.OffsetX, refHIPFileInfo.OffsetY, refHIPFileInfo.CanvasWidth, refHIPFileInfo.CanvasHeight); } }
public static void ProcessOptions(string[] args) { var newArgsList = new List <string>(); for (var i = 1; i < args.Length; i++) { var arg = args[i]; if (arg.First() != '-') { continue; } newArgsList.Add(arg); foreach (var co in ConsoleOptions) { if (arg == co.ShortOp || arg == co.LongOp) { options |= (Options)co.Flag; if (co.HasArg) { var subArgsList = new List <string>(); var lastArg = string.Empty; for (var j = i; j < args.Length - 1; j++) { var subArg = args[j + 1]; if (subArg.First() == '-') { break; } if (string.IsNullOrWhiteSpace(lastArg) || subArg.ToLower() != lastArg.ToLower()) { subArgsList.Add(subArg); } i++; } co.SpecialObject = subArgsList.ToArray(); } } } } foreach (var co in ConsoleOptions) { if (co.Flag == null) { continue; } if (co.HasArg) { var subArgs = (string[])co.SpecialObject; if ((Options)co.Flag == Options.Encoding && options.HasFlag(Options.Encoding)) { if (subArgs.Length > 0) { HIPEncoding encoding; if (Enum.TryParse(subArgs[0], true, out encoding)) { Encoding = encoding; } } else { Encoding = HIPEncoding.Raw; } } if ((Options)co.Flag == Options.Layered && options.HasFlag(Options.Layered)) { var layered = false; if (subArgs.Length > 0) { bool.TryParse(subArgs[0], out layered); } Layered = layered; } if ((Options)co.Flag == Options.Offsets && options.HasFlag(Options.Offsets)) { var offsetX = 0; var offsetY = 0; if (subArgs.Length > 0) { int.TryParse(subArgs[0], out offsetX); if (subArgs.Length > 1) { int.TryParse(subArgs[1], out offsetY); } } Offsets = new Tuple <int, int>(offsetX, offsetY); } if ((Options)co.Flag == Options.CanvasDimensions && options.HasFlag(Options.CanvasDimensions)) { var canvasWidth = 0; var canvasHeight = 0; if (subArgs.Length > 0) { int.TryParse(subArgs[0], out canvasWidth); if (subArgs.Length > 1) { int.TryParse(subArgs[1], out canvasHeight); } } CanvasDimensions = new Tuple <int, int>(canvasWidth, canvasHeight); } if ((Options)co.Flag == Options.ReferencedHIP && options.HasFlag(Options.ReferencedHIP)) { if (subArgs.Length == 0) { subArgs = new string[1]; subArgs[0] = OpenFileDialog("Select Referenced HIP File..."); if (string.IsNullOrWhiteSpace(subArgs[0])) { subArgs[0] = OpenFolderDialog("Select Referenced HIP folder..."); } } foreach (var arg in subArgs) { var subArg = Path.GetFullPath(arg.Replace("\"", "\\")); if (subArgs.Length > 1) { WarningMessage( $"Too many arguments for referenced HIP file or folder path. Defaulting to \"{subArg}\"..."); } referencedHIPPath = subArg.ToLower() == "auto" ? "auto" : Path.GetFullPath(subArg); break; } if (string.IsNullOrWhiteSpace(referencedHIPPath)) { if (subArgs.Length > 1) { WarningMessage( "None of the given file or folder paths exist. Ignoring..."); } else if (subArgs.Length == 1) { WarningMessage( "Given file or folder path does not exist. Ignoring..."); } else if (subArgs.Length == 0) { WarningMessage( "No file or folder path was given. Ignoring..."); } } else { if (!File.Exists(referencedHIPPath) && !Directory.Exists(referencedHIPPath)) { WarningMessage( "Given file or folder path does not exist. Ignoring..."); referencedHIPPath = string.Empty; } } } if ((Options)co.Flag == Options.Endianness && options.HasFlag(Options.Endianness)) { if (subArgs.Length > 0) { ByteOrder endian; if (Enum.TryParse(subArgs[0], true, out endian)) { endianness = endian; } } else { endianness = ByteOrder.LittleEndian; } } if ((Options)co.Flag == Options.Output && options.HasFlag(Options.Output)) { if (subArgs.Length == 0) { subArgs = new string[1]; subArgs[0] = OpenFolderDialog("Select output folder..."); } foreach (var arg in subArgs) { var subArg = Path.GetFullPath(arg.Replace("\"", "\\")); if (subArgs.Length > 1) { WarningMessage( $"Too many arguments for output path. Defaulting to \"{subArg}\"..."); } outputPath = Path.GetFullPath(subArg); break; } if (string.IsNullOrWhiteSpace(outputPath)) { if (subArgs.Length > 1) { WarningMessage( "None of the given output paths exist or could be created. Ignoring..."); } else if (subArgs.Length == 1) { WarningMessage( "Given output path does not exist. Ignoring..."); } else if (subArgs.Length == 0) { WarningMessage( "No output path was given. Ignoring..."); } } else { if (!Directory.Exists(outputPath)) { WarningMessage( "Given output path does not exist. Ignoring..."); outputPath = string.Empty; } } } } } }