No project description provided
Project description
Sprites Detection
A sprite is a small raster graphic (a bitmap) that represents an object such as a character, a vehicle, a projectile, etc.
Sprite Sheet
It is not uncommon for games to have tens to hundreds of sprites. Loading each of these as an individual image would consume a lot of memory and processing power. To help manage sprites and avoid using so many images, many games use sprite sheets (also known as image sprites).
A sprite sheet consists of multiple sprites in one image. In other words, sprite sheets pack multiple sprites into a single picture. Using sprite sheet, video game developers create sprite sheet animation representing one or several animation sequences while only loading a single file:
Sprite Bounding Box
A frame (bounding box) can be used to delimit the sprite in the sprite sheet. This bounding box is defined with two 2D points top_left
and the bottom_right
, which their respective coordinates x
and y
are relative to the top-left corner of the sprite sheet's image.
For example:
Sprite Mask
The mask of a sprite defines the 2D shape of the sprite. For example, the sprite sheet metal_slug_sprite_standing_stance.png
contains the 3 following sprites:
The masks of these sprites are respectively:
Aim of the project
- Detect sprites packed in an image (sheet) and draw their masks and bounding boxes into a new image with the same size of the original image.
- Present a 2D map of all the the sprites with their labels.
Waypoint Delivered:
- Waypoint 1: Find the Most Common Color in an Image
- Waypoint 2: Write a Class Sprite
- Waypoint 3: Find Sprites in an Image
- Waypoint 4: Draw Sprite Label Bounding Boxes
- Waypoint 5: Write a Class SpriteSheet
Usage Information
Prerequisites
- Python 3.7 is required.
- numpy (python support library)
- PIL.Image (python support library)
Usage
- Use git to clone the link to your local directory.
- Change the your current working directory to where you git the project.
- Open terminal and type
pipenv install -e Pipfile
to install virtual environment. - For example:
>>> from spriteutil import *
>>> sprite_sheet = SpriteSheet('Barbarian.gif')
>>> sprites, labels = sprite_sheet.find_sprites()
>>> len(sprites)
39
>>> # Create the mask image with bounding boxes.
>>> image = sprite_sheet.create_sprite_labels_image()
>>> image.save('barbarian_bounding_boxes.png')
Contact Information
- If you have any problems using this library, please use the contact below.
Email: cuong.nguyen@f4.intek.edu.vn
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for spriteutil-intek-2020-nqcuong96-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c51e1b63f85384985bad7c61dabef655bac31a65aa5ebe7dc2c068aff8744efa |
|
MD5 | af1250c0868d58255522ebd777f286bc |
|
BLAKE2b-256 | 4b3c674f44d8a2e4f2a77d2dc47fef0c214c880f10adb647abd52a0e9f97cb2b |
Hashes for spriteutil_intek_2020_nqcuong96-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00c342ea7573b3f293dfbc8b110854f6af49b2d0579a11666e209cd99b7295d2 |
|
MD5 | 4e9a6f1dede59137b648134fcf19bb86 |
|
BLAKE2b-256 | 6f87b9b56addbd391c4a91357f9755bab5065951e25783eb6111a454e1ddfc58 |