private static int Launch(Atlas args) { if (args.AtlasFile.Equals("")) { return((int)FailCode.FailedParsingArguments); } else { // make sure we found some images if (args.TextureList.Count == 0) { Logging.Manager("No images to pack for " + args.AtlasFile); return((int)FailCode.NoImages); } // generate our output ImagePacker imagePacker = new ImagePacker(); // Logging.Manager("try to add " + args.TextureList.Count + " images to atlas file " + args.AtlasFile); // pack the image, generating a map only if desired int result = imagePacker.PackImage(args.TextureList, args.PowOf2, args.Square, args.FastImagePacker, args.AtlasWidth, args.AtlasHeight, args.Padding, args.mapExporter != null, out Bitmap outputImage, out Dictionary <string, Rectangle> outputMap); if (result != 0) { Logging.Manager("There was an error making the image sheet."); //error result 7 = "failed to pack image" most likely it won't fit return(result); } else { Logging.Manager(string.Format("Packing '{0}' to {1} x {2} pixel", Path.GetFileName(args.AtlasFile), outputImage.Height, outputImage.Width)); } // try to save using our exporters try { if (File.Exists(args.AtlasFile)) { File.Delete(args.AtlasFile); } if (args.imageHandler.Save(args.AtlasFile, outputImage)) { Logging.Manager("successfully created Atlas image: " + args.AtlasFile); } Logging.InstallerGroup("created Atlases"); // write comment Logging.Installer(Utils.ReplaceDirectorySeparatorChar(args.AtlasFile)); // write created filename with path } catch (Exception e) { Logging.Manager("Error saving file: " + e.Message); return((int)FailCode.FailedToSaveImage); } if (args.mapExporter != null) { try { if (File.Exists(args.MapFile)) { File.Delete(args.MapFile); } args.mapExporter.Save(args.MapFile, outputMap); Logging.Installer(Utils.ReplaceDirectorySeparatorChar(args.MapFile)); // write created filename with path } catch (Exception e) { Logging.Manager("Error saving file: " + e.Message); return((int)FailCode.FailedToSaveMap); } } } return(0); }