private void Copy(KeyValuePair <uint, string> x) { if (x.Value == "") { return; } var iconFolder = x.Value.Split('.')[0]; if (iconFolder == "icon_ep") { return; } var iconName = x.Value.Split('.')[1] + ".tga"; var tgaPath = Path.Combine(UmodelExportPath, iconFolder, "Texture2D", iconName); var pngPath = Path.Combine(Environment.CurrentDirectory, "used_icons", iconFolder, iconName.ToLower().Replace(".tga", ".png")); using (var fs = new FileStream(tgaPath, FileMode.Open, FileAccess.Read, FileShare.Read)) using (var reader = new BinaryReader(fs)) { var tga = new TgaLib.TgaImage(reader); var png = new PNGCompression.PNGCompressor(); var bmp = tga.GetBitmap(); if (!Directory.Exists(Path.Combine(Environment.CurrentDirectory, "used_icons", iconFolder))) { Directory.CreateDirectory(Path.Combine(Environment.CurrentDirectory, "used_icons", iconFolder)); } using (var fileStream = new FileStream(pngPath, FileMode.Create)) { BitmapEncoder encoder = new PngBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(bmp)); encoder.Save(fileStream); Console.WriteLine($"Saved {pngPath}"); } } }
public static void Copy() { var paths = Directory.GetDirectories(Utilities.ICONS_PATH).ToList(); foreach (var item in paths) { var sp = Directory.GetFiles(Path.Combine(Utilities.ICONS_PATH, item, "Texture2D")); foreach (var i in sp) { var cat = Path.GetFileName(item); var fn = i.Replace(item, "").Replace("\\Texture2D\\", ""); filenames.Add(new Tuple <string, string>(cat, fn)); Console.Write($"\rAdded {cat}.{fn}"); } } int c = 0; foreach (var pair in Abnormalities) { string iconName = pair.Value.IconName.Remove(0, pair.Value.IconName.IndexOf('.') + 1) + ".tga"; var tuple = filenames.FirstOrDefault(x => string.Equals(x.Item2, iconName, StringComparison.CurrentCultureIgnoreCase)); if (tuple != null) { string dirName = pair.Value.IconName.Remove(pair.Value.IconName.IndexOf('.')); if (!Directory.Exists(Environment.CurrentDirectory + "/used_icons/" + dirName)) { Directory.CreateDirectory(Environment.CurrentDirectory + "/used_icons/" + dirName); } var tgaPath = Path.Combine(Utilities.ICONS_PATH, tuple.Item1, "Texture2D", iconName); var pngPath = Environment.CurrentDirectory + "/used_icons/" + pair.Value.IconName.Replace('.', '/').ToLower() + ".png"; using (var fs = new FileStream(tgaPath, FileMode.Open, FileAccess.Read, FileShare.Read)) using (var reader = new BinaryReader(fs)) { var tga = new TgaLib.TgaImage(reader); var png = new PNGCompression.PNGCompressor(); var bmp = tga.GetBitmap(); using (var fileStream = new FileStream(pngPath, FileMode.Create)) { BitmapEncoder encoder = new PngBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(bmp)); encoder.Save(fileStream); Console.WriteLine($"[{c}]Saved {pngPath}"); c++; } } //File.Copy(Path.Combine(Utilities.ICONS_PATH, tuple.Item1, "Texture2D", iconName), Environment.CurrentDirectory + "/used_icons/" + pair.Value.IconName.Replace('.', '/').ToLower() + ".tga", true); } } foreach (var dict in Skills) { foreach (var pair in dict.Value) { c = 0; string iconName = pair.Value.IconName.Remove(0, pair.Value.IconName.IndexOf('.') + 1) + ".tga"; var tuple = filenames.FirstOrDefault(x => x.Item2 == iconName); if (tuple != null) { string dirName = pair.Value.IconName.Remove(pair.Value.IconName.IndexOf('.')); if (!Directory.Exists(Environment.CurrentDirectory + "/used_icons/" + dirName)) { Directory.CreateDirectory(Environment.CurrentDirectory + "/used_icons/" + dirName); } var tgaPath = Path.Combine(Utilities.ICONS_PATH, tuple.Item1, "Texture2D", iconName); var pngPath = Environment.CurrentDirectory + "/used_icons/" + pair.Value.IconName.Replace('.', '/').ToLower() + ".png"; using (var fs = new FileStream(tgaPath, FileMode.Open, FileAccess.Read, FileShare.Read)) using (var reader = new BinaryReader(fs)) { var tga = new TgaLib.TgaImage(reader); var png = new PNGCompression.PNGCompressor(); var bmp = tga.GetBitmap(); using (var fileStream = new FileStream(pngPath, FileMode.Create)) { BitmapEncoder encoder = new PngBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(bmp)); encoder.Save(fileStream); Console.WriteLine($"[{c}]Saved {pngPath}"); c++; } } //File.Copy(Path.Combine(Utilities.ICONS_PATH, tuple.Item1 ,"Texture2D", iconName), Environment.CurrentDirectory + "/used_icons/" + pair.Value.IconName.Replace('.', '/').ToLower() + ".tga", true); } } } }