private void toolStripButton3_Click(object sender, EventArgs e) { if (this.saveFileDialog2.ShowDialog() != DialogResult.OK || this.saveFileDialog2.FileName.Length <= 0) { return; } NCGR ncgr = new NCGR(this.ImageData, 80, 88, Graphic.GXTexFmt.GX_TEXFMT_PLTT16); File.Create(this.saveFileDialog2.FileName).Close(); File.WriteAllBytes(this.saveFileDialog2.FileName, ncgr.Write()); }
private void Add_TransparencyColor() { int index = Convertir.Remove_DuplicatedColors(ref this.paleta.pltt.palettes[0], ref this.tile.rahc.tileData.tiles); if (index == -1) { index = Convertir.Remove_NotUsedColors(ref this.paleta.pltt.palettes[0], ref this.tile.rahc.tileData.tiles); } this.paleta.pltt.palettes[0].colors[index] = this.paleta.pltt.palettes[0].colors[0]; this.paleta.pltt.palettes[0].colors[0] = Color.FromArgb(0xf8, 0, 0xf8); Convertir.Change_Color(ref this.tile.rahc.tileData.tiles, index, 0); string tempFileName = Path.GetTempFileName(); NCLR.Escribir(this.paleta, tempFileName); string fileout = Path.GetTempFileName(); NCGR.Write(this.tile, fileout); this.UpdateImage(); this.checkTransparency.Checked = true; }
private void Change_TransparencyColor(Color color) { int oldIndex = 0; for (int i = 0; i < this.paleta.pltt.palettes[0].colors.Length; i++) { if (this.paleta.pltt.palettes[0].colors[i] == color) { this.paleta.pltt.palettes[0].colors[i] = this.paleta.pltt.palettes[0].colors[0]; this.paleta.pltt.palettes[0].colors[0] = color; oldIndex = i; break; } } string tempFileName = Path.GetTempFileName(); NCLR.Escribir(this.paleta, tempFileName); Convertir.Change_Color(ref this.tile.rahc.tileData.tiles, oldIndex, 0); string fileout = Path.GetTempFileName(); NCGR.Write(this.tile, fileout); this.UpdateImage(); this.checkTransparency.Checked = true; }
private static void Main(string[] args) { if (args != null && args.Length > 0) { if (!Program.AttachConsole(-1)) { Program.AllocConsole(); } switch (args[0].ToLower()) { case "asm": if (args.Length > 2) { switch (args[1].ToLower()) { case "patch": ARM9 arM9 = new ARM9(System.IO.File.ReadAllBytes(args[2])); arM9.AddCustomCode(Path.GetDirectoryName(args[2])); System.IO.File.WriteAllBytes(Path.GetDirectoryName(args[2]) + "\\" + Path.GetFileNameWithoutExtension(args[2]) + "_new.bin", arM9.Write()); break; default: Program.PrintUsage(); break; } } else { Program.PrintUsage(); break; } break; case "g2d": if (args.Length > 4) { switch (args[1].ToLower()) { case "pal": switch (args[2].ToLower()) { case "4bpp": Bitmap b1 = (Bitmap)Image.FromFile(args[3]); NCLR nclr1 = new NCLR(Graphic.ToABGR1555(Graphic.GeneratePalette(b1, 16, false, false)), Graphic.GXTexFmt.GX_TEXFMT_PLTT16); System.IO.File.Create(args[4]).Close(); System.IO.File.WriteAllBytes(args[4], nclr1.Write()); b1.Dispose(); break; case "8bpp": Bitmap b2 = (Bitmap)Image.FromFile(args[4]); NCLR nclr2 = new NCLR(Graphic.ToABGR1555(Graphic.GeneratePalette(b2, 256, false, false)), Graphic.GXTexFmt.GX_TEXFMT_PLTT256); System.IO.File.Create(args[5]).Close(); System.IO.File.WriteAllBytes(args[5], nclr2.Write()); b2.Dispose(); break; default: Program.PrintUsage(); break; } break; case "grp": bool firstTransparent; if (args.Length > 5) { switch (args[2].ToLower()) { case "4bpp": Bitmap b3 = (Bitmap)Image.FromFile(args[3]); byte[] Data1; byte[] Palette1; Graphic.ConvertBitmap(b3, out Data1, out Palette1, Graphic.GXTexFmt.GX_TEXFMT_PLTT16, Graphic.NNSG2dCharacterFmt.NNS_G2D_CHARACTER_FMT_CHAR, out firstTransparent, false); NCLR nclr3 = new NCLR(Palette1, Graphic.GXTexFmt.GX_TEXFMT_PLTT16); NCGR ncgr1 = new NCGR(Data1, b3.Width / 8, b3.Height / 8, Graphic.GXTexFmt.GX_TEXFMT_PLTT16); System.IO.File.Create(args[4]).Close(); System.IO.File.WriteAllBytes(args[4], nclr3.Write()); System.IO.File.Create(args[5]).Close(); System.IO.File.WriteAllBytes(args[5], ncgr1.Write()); b3.Dispose(); break; case "8bpp": Bitmap b4 = (Bitmap)Image.FromFile(args[3]); byte[] Data2; byte[] Palette2; Graphic.ConvertBitmap(b4, out Data2, out Palette2, Graphic.GXTexFmt.GX_TEXFMT_PLTT256, Graphic.NNSG2dCharacterFmt.NNS_G2D_CHARACTER_FMT_CHAR, out firstTransparent, false); NCLR nclr4 = new NCLR(Palette2, Graphic.GXTexFmt.GX_TEXFMT_PLTT256); NCGR ncgr2 = new NCGR(Data2, b4.Width / 8, b4.Height / 8, Graphic.GXTexFmt.GX_TEXFMT_PLTT256); System.IO.File.Create(args[4]).Close(); System.IO.File.WriteAllBytes(args[4], nclr4.Write()); System.IO.File.Create(args[5]).Close(); System.IO.File.WriteAllBytes(args[5], ncgr2.Write()); b4.Dispose(); break; default: Program.PrintUsage(); break; } } else { Program.PrintUsage(); break; } break; case "map": if (args.Length > 7) { switch (args[2].ToLower()) { case "8bpp": switch (args[3].ToLower()) { case "single": Bitmap b5 = (Bitmap)Image.FromFile(args[4]); byte[] Palette3; byte[] Tilemap1; byte[] Screendata; Graphic.ConvertBitmap(b5, out Palette3, out Tilemap1, out Screendata, Graphic.GXTexFmt.GX_TEXFMT_PLTT256, true); NCLR nclr5 = new NCLR(Palette3, Graphic.GXTexFmt.GX_TEXFMT_PLTT256); NCGR ncgr3 = new NCGR(Tilemap1, Tilemap1.Length / 64 * 8, 8, Graphic.GXTexFmt.GX_TEXFMT_PLTT256); NSCR nscr1 = new NSCR(Screendata, b5.Width, b5.Height, Graphic.NNSG2dColorMode.NNS_G2D_SCREENCOLORMODE_16x16); System.IO.File.Create(args[5]).Close(); System.IO.File.WriteAllBytes(args[5], nclr5.Write()); System.IO.File.Create(args[6]).Close(); System.IO.File.WriteAllBytes(args[6], ncgr3.Write()); System.IO.File.Create(args[7]).Close(); System.IO.File.WriteAllBytes(args[7], nscr1.Write()); b5.Dispose(); break; case "duo": if (args.Length > 9) { Bitmap a = (Bitmap)Image.FromFile(args[4]); Bitmap b6 = (Bitmap)Image.FromFile(args[5]); byte[] Palette4; byte[] Tilemap2; byte[] ScreendataA; byte[] ScreendataB; Graphic.ConvertBitmap(a, b6, out Palette4, out Tilemap2, out ScreendataA, out ScreendataB, Graphic.GXTexFmt.GX_TEXFMT_PLTT256); NCLR nclr6 = new NCLR(Palette4, Graphic.GXTexFmt.GX_TEXFMT_PLTT256); NCGR ncgr4 = new NCGR(Tilemap2, Tilemap2.Length / 64 * 8, 8, Graphic.GXTexFmt.GX_TEXFMT_PLTT256); NSCR nscr2 = new NSCR(ScreendataA, b6.Width, b6.Height, Graphic.NNSG2dColorMode.NNS_G2D_SCREENCOLORMODE_16x16); NSCR nscr3 = new NSCR(ScreendataB, b6.Width, b6.Height, Graphic.NNSG2dColorMode.NNS_G2D_SCREENCOLORMODE_16x16); System.IO.File.Create(args[6]).Close(); System.IO.File.WriteAllBytes(args[6], nclr6.Write()); System.IO.File.Create(args[7]).Close(); System.IO.File.WriteAllBytes(args[7], ncgr4.Write()); System.IO.File.Create(args[8]).Close(); System.IO.File.WriteAllBytes(args[8], nscr2.Write()); System.IO.File.Create(args[9]).Close(); System.IO.File.WriteAllBytes(args[9], nscr3.Write()); a.Dispose(); b6.Dispose(); break; } Program.PrintUsage(); break; default: Program.PrintUsage(); break; } break; default: Program.PrintUsage(); break; } } else { Program.PrintUsage(); break; } break; default: Program.PrintUsage(); break; } } else { Program.PrintUsage(); break; } break; case "help": Program.PrintUsage(); break; case "mkds": if (args.Length > 1) { switch (args[1]) { case "kcl": if (args.Length > 3) { Obj2Kcl.ConvertToKcl(args[2], args[3]); break; } Program.PrintUsage(); break; } } else { Program.PrintUsage(); break; } break; default: Program.PrintUsage(); break; } Program.FreeConsole(); SendKeys.SendWait("{ENTER}"); } else { Program.Run((string)null); } }