private void LoadInformation() { string ImageFilename = System.IO.Path.GetFileNameWithoutExtension(ExtensionMethods.ConvertPathSeparatorsToCurrentNativeSeparator(ExportTarget.ItemPath)); this.Title = $"Export Image | {ImageFilename}"; byte[] file = ExportTarget.Extract(); Image = new BLP(file); ExportFormatComboBox.Active = (int)Config.GetDefaultImageFormat(); MipLevelListStore.Clear(); foreach (string mipString in Image.GetMipMapLevelStrings()) { MipLevelListStore.AppendValues(true, mipString); } ExportDirectoryFileChooserButton.SetFilename(Config.GetDefaultExportDirectory()); }
/// <summary> /// Exports the mipmaps in the image. /// </summary> public void RunExport() { ItemExportListStore.Foreach(delegate(ITreeModel model, TreePath path, TreeIter iter) { bool bShouldExport = (bool)ItemExportListStore.GetValue(iter, 0); if (bShouldExport) { ItemReference referenceToExport = this.ReferenceMapping[(string)ItemExportListStore.GetValue(iter, 1)]; string ExportPath = ""; if (Config.GetShouldKeepFileDirectoryStructure()) { string parentDirectoryOfFile = ExtensionMethods.ConvertPathSeparatorsToCurrentNativeSeparator(ExportTarget.ItemPath); ExportPath = $"{ExportDirectoryFileChooserButton.Filename}{System.IO.Path.DirectorySeparatorChar}{parentDirectoryOfFile}{System.IO.Path.DirectorySeparatorChar}{referenceToExport.GetReferencedItemName()}"; } else { ExportPath = $"{ExportDirectoryFileChooserButton.Filename}{System.IO.Path.DirectorySeparatorChar}{referenceToExport.GetReferencedItemName()}"; } System.IO.Directory.CreateDirectory(System.IO.Directory.GetParent(ExportPath).FullName); byte[] fileData = referenceToExport.Extract(); if (fileData != null) { File.WriteAllBytes(ExportPath, fileData); } } return(false); }); }