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); }
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); }
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); }
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); }