Exemplo n.º 1
0
 public static byte[] BitmapToTileMapped(Bitmap image, BGR565 pal, TileMapType tileMap, ColorDepth colorDepth)
 {
     if (!_isConvertersInitialized)
     {
         InitilizeConverters();
     }
     byte[] alphaValues         = null;
     byte[] uncompressedIndexes = ImageTypeConverter.GenerateTiledIndices(image, pal, tileMap, true);
     return(_indexedFormatConverters[colorDepth].CompressIndexes(uncompressedIndexes));
 }
Exemplo n.º 2
0
    public static string Name(this TileMapType type)
    {
        switch (type)
        {
        case TileMapType.EntityMap:
            return("EntityMap");

        case TileMapType.EntityMap_Background:
            return("EntityMap-Background");

        case TileMapType.GroundMap:
            return("GroundMap");

        default:
            return("");
        }
    }
Exemplo n.º 3
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());
        }
Exemplo n.º 4
0
        public void ImportaNCGRComNscr(string dirImg)
        {
            ColorDepth  depth         = Char.IntensidadeDeBits == 3 ? ColorDepth.F4BBP : ColorDepth.F8BBP;
            BGR565      palette       = new BGR565(ArquivoNclr.Pltt.Paleta);
            TileMapType tilemap       = new TileMapType();
            Bitmap      imageToInsert = new Bitmap(dirImg);

            if (imageToInsert.Width > ArquivoNscr.Scrn.Largura)
            {
                Errors.Add("A largura da imagem importada é maior que a original");
            }

            if (imageToInsert.Height > ArquivoNscr.Scrn.Altura)
            {
                Errors.Add("A altura da imagem importada é maior que a original");
            }

            if (Errors.Count == 0)
            {
                Char.Tiles = ImageConverter.BitmapToTileMapped(imageToInsert, palette, tilemap, depth);
                ArquivoNscr.Scrn.InfoTela = tilemap.Tilemap.ToArray();
                CarregarImagemNCGRComNSCR();
            }
        }