private static System.Drawing.Color GetTreeColor(TreeRow treeRow) { if (treeColors.ContainsKey(treeRow.Name)) { return(treeColors[treeRow.Name]); } string treeTextureFile = string.Format("{0}\\zones\\trees\\{1}", Properties.Settings.Default.game_path, treeRow.LeafTexture); if (!File.Exists(treeTextureFile)) { MainForm.Log(string.Format("Unable to get texture for tree {0}. Using default color.", treeRow.Name)); return(System.Drawing.ColorTranslator.FromHtml("#5e683a")); } else { using (ImageMagick.MagickImage texture = new ImageMagick.MagickImage(treeTextureFile)) { texture.Resize(1, 1); ImageMagick.Pixel pixel = texture.GetPixels().First(); System.Drawing.Color color = pixel.ToColor(); treeColors.Add(treeRow.Name, color); return(color); } } }
// // Export // private void Button_Export_Click(object sender, EventArgs e) { try { FolderBrowserDialog folderDialog = new FolderBrowserDialog(); if (folderDialog.ShowDialog() != DialogResult.OK) { UpdateStatus("No output folder selected", SystemIcons.Error); return; } UpdateStatus("Preparing to export", 0, InputFiles.Count * 3); foreach (string file in InputFiles) { // import UpdateStatus($"Loading {file}", true); using (ImageMagick.MagickImage img = new ImageMagick.MagickImage(file)) { // convert UpdateStatus($"Converting {file}", true); if (checkBox_Resize.Checked) { img.Resize((int)numericUpDown_ResizeX.Value, (int)numericUpDown_ResizeY.Value); } if (checkBox_AlphaMask.Checked) { ImageMagick.IPixelCollection pixels = img.GetPixels(); int width = img.Width; int height = img.Height; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { ImageMagick.MagickColor pixelColor = pixels[x, y].ToColor(); pixels[x, y].Set(new ushort[] { pixelColor.A, pixelColor.A, pixelColor.A, ushort.MaxValue }); } } } // export string exportPath = $@"{folderDialog.SelectedPath}{Path.DirectorySeparatorChar}{Path.GetFileName(file)}"; if (checkBox_ChangeFormat.Checked && comboBox_ExportFormat.SelectedItem != null) { exportPath = Path.ChangeExtension(exportPath, (comboBox_ExportFormat.SelectedItem as FormatComboBoxItem).Extension()); } UpdateStatus($"Exporting \"{file}\"", true); img.Write(exportPath); } } UpdateStatus($"Exported {InputFiles.Count} files", 0); } catch (Exception ex) { UpdateStatus(ex.Message, SystemIcons.Error); } }