Exemplo n.º 1
0
        public static Bitmap TiledToBmp(byte[] uncompressedIndices, int width, int height, IPalette palette, List <ushort> tileMap = null, byte [] alphaValues = null)
        {
            List <Bitmap> tiles      = new List <Bitmap>();
            Bitmap        finalImage = new Bitmap(width, height);

            for (int i = 0; i < uncompressedIndices.Length; i += 64)
            {
                byte[] indicesTile = new byte[64];
                Array.Copy(uncompressedIndices, i, indicesTile, 0, 64);
                Bitmap tile = new Bitmap(8, 8, PixelFormat.Format32bppArgb);

                tile.PoulateBitmap(indicesTile, palette.Colors, alphaValues);
                tiles.Add(tile);
            }

            if (tileMap != null)
            {
                TileMapTool.CreateWithTilemap(tileMap, tiles, finalImage);
            }
            else
            {
                TileMapTool.CreateWithGenericTilemap(tiles, finalImage);
            }

            tiles = null;
            return(finalImage);
        }
Exemplo n.º 2
0
        public static byte[] GenerateTiledIndices(Bitmap imagem, IPalette paleta, TileMapType tileMap, bool hasTileMap)
        {
            List <Bitmap> tiles = BitmapExtesions.SlitIntoTiles(imagem, 8, 8);

            if (hasTileMap)
            {
                tileMap.Tiles   = tiles;
                tileMap.Tilemap = TileMapTool.GenerateTileMap(tileMap);
                tiles           = tileMap.Tiles;
            }

            List <byte> indexes = new List <byte>();

            foreach (var tile in tiles)
            {
                Color[] colors = tile.GetColors();
                foreach (var color in colors)
                {
                    indexes.Add(paleta.GetNearColorIndex(color));
                }
            }

            return(indexes.ToArray());
        }