示例#1
0
        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();
        }
示例#2
0
        private void GetImage(TextureInfo info, int textureSize, int paletteSize, ColorDepth colorDepth, BinaryReader br)
        {
            br.BaseStream.Position = info.Offset + BaseOffsetTextures + TextureInfosBaseOffset;
            byte[] img        = br.ReadBytes(textureSize);
            var    pInfoIndex = PaletteInfos.FindIndex(x => x.PaletteName.Contains(info.TextureName + "_pl"));

            br.BaseStream.Position = PalettesOffset + TextureInfosBaseOffset + PaletteInfos[pInfoIndex].Offset;
            byte[] palette = br.ReadBytes(paletteSize);
            PaletteInfos[pInfoIndex].PaletteBytes = palette;
            info.ColorCount = paletteSize / 2;
            BGR565 bGR565 = new BGR565(palette);

            PaletteInfos[pInfoIndex].Palette = bGR565.Colors;
            info.TextureImage = ImageConverter.RawIndexedToBitmap(img, info.Width, info.Height, bGR565, TileMode.NotTiled, colorDepth);
            info.Bpp          = colorDepth;
            info.PaletteIndex = pInfoIndex;
        }