public static Dictionary <Sprite, Bitmap> Crop(SpriteSet spriteSet)
        {
            var bitmaps = new List <Bitmap>(spriteSet.TextureSet.Textures.Count);

            foreach (var texture in spriteSet.TextureSet.Textures)
            {
                var bitmap = TextureDecoder.DecodeToBitmap(texture);
                bitmap.RotateFlip(RotateFlipType.Rotate180FlipX);
                bitmaps.Add(bitmap);
            }

            var sprites = new Dictionary <Sprite, Bitmap>(spriteSet.Sprites.Count);

            foreach (var sprite in spriteSet.Sprites)
            {
                var sourceBitmap = bitmaps[( int )sprite.TextureIndex];
                var bitmap       = sourceBitmap.Clone(
                    new RectangleF(sprite.X, sprite.Y, sprite.Width, sprite.Height), sourceBitmap.PixelFormat);
                sprites.Add(sprite, bitmap);
            }

            foreach (var bitmap in bitmaps)
            {
                bitmap.Dispose();
            }

            return(sprites);
        }
        public static Bitmap Crop(Sprite sprite, SpriteSet parentSet)
        {
            if (sprite.TextureIndex >= parentSet.TextureSet.Textures.Count)
            {
                return(null);
            }

            var texture = parentSet.TextureSet.Textures[( int )sprite.TextureIndex];

            if (sprite.Width <= 0 || sprite.Height <= 0 ||
                sprite.X + sprite.Width > texture.Width || sprite.Y + sprite.Height > texture.Height)
            {
                return(null);
            }

            var bitmap = TextureDecoder.DecodeToBitmap(texture);

            bitmap.RotateFlip(RotateFlipType.Rotate180FlipX);

            Bitmap croppedBitmap = bitmap.Clone(
                new RectangleF(sprite.X, sprite.Y, sprite.Width, sprite.Height), bitmap.PixelFormat);

            bitmap.Dispose();
            return(croppedBitmap);
        }
Пример #3
0
        public static Bitmap Crop(Sprite sprite, SpriteSet parentSet)
        {
            var bitmap = TextureDecoder.Decode(
                parentSet.TextureSet.Textures[sprite.TextureIndex]);

            var croppedBitmap = Crop(bitmap, sprite.GetSourceRectangle());

            bitmap.Dispose();
            return(croppedBitmap);
        }
Пример #4
0
        public static Bitmap Crop(Sprite sprite, SpriteSet parentSet)
        {
            var bitmap = TextureDecoder.Decode(
                parentSet.TextureSet.Textures[sprite.TextureIndex]);

            bitmap.RotateFlip(RotateFlipType.Rotate180FlipX);

            var croppedBitmap = bitmap.Clone(
                new RectangleF(sprite.X, sprite.Y, sprite.Width, sprite.Height), bitmap.PixelFormat);

            bitmap.Dispose();
            return(croppedBitmap);
        }
Пример #5
0
        public static Dictionary <Sprite, Bitmap> Crop(SpriteSet spriteSet)
        {
            var bitmaps = new List <Bitmap>(spriteSet.TextureSet.Textures.Count);

            foreach (var texture in spriteSet.TextureSet.Textures)
            {
                var bitmap = TextureDecoder.Decode(texture);
                bitmap.RotateFlip(RotateFlipType.Rotate180FlipX);
                bitmaps.Add(bitmap);
            }

            var sprites = new Dictionary <Sprite, Bitmap>(spriteSet.Sprites.Count);

            foreach (var sprite in spriteSet.Sprites)
            {
                var sourceBitmap = bitmaps[sprite.TextureIndex];
                var bitmap       = sourceBitmap.Clone(sprite.GetSourceRectangle(), sourceBitmap.PixelFormat);
                sprites.Add(sprite, bitmap);
            }

            return(sprites);
        }