private void ConvertAndInsert(TextureInfo info, BinaryWriter bw, Bitmap png) { var palInfo = PaletteInfos.First(x => x.PaletteName.Contains(info.TextureName + "_pl")); BGR565 bGR565 = new BGR565(palInfo.PaletteBytes); byte[] img = new byte[0]; bw.BaseStream.Position = info.Offset + BaseOffsetTextures + TextureInfosBaseOffset; switch (info.Format) { case 1: //img = ImageConverter.BitmapToRawIndexed(new Bitmap(png), bGR565, TileMode.NotTiled, ColorDepth.F4BBP); break; case 3: img = ImageConverter.BitmapToRawIndexed(new Bitmap(png), bGR565, TileMode.NotTiled, ColorDepth.F4BBP); break; case 4: case 6: img = ImageConverter.BitmapToRawIndexed(new Bitmap(png), bGR565, TileMode.NotTiled, ColorDepth.F8BBP); break; default: break; } bw.Write(img); ReloadTextures(); }
public void ImportaNCGR(string dirImg) { ColorDepth depth = Char.IntensidadeDeBits == 3 ? ColorDepth.F4BBP : ColorDepth.F8BBP; BGR565 palette = new BGR565(ArquivoNclr.Pltt.Paleta); Bitmap imageToInsert = new Bitmap(dirImg); if (imageToInsert.Width > Char.QuatidadeDeTilesX * 8) { Errors.Add("A largura da imagem importada é maior a que original"); } if (imageToInsert.Height > Char.QuatidadeDeTilesY * 8) { Errors.Add("A altura da imagem importada é maior que a original"); } if (Errors.Count == 0) { Char.Tiles = ImageConverter.BitmapToRawIndexed(imageToInsert, palette, TileMode.Tiled, depth); CarregarImagens(); ArquivoNclr.Colors = palette.Colors; } }