Skip to main content

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:

Metal Slug Sprites

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:

Shape Bounding Boxes

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:

Metal Slug Standing Stance

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spriteutil-intek-2020-nqcuong96-1.0.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file spriteutil-intek-2020-nqcuong96-1.0.0.tar.gz.

File metadata

  • Download URL: spriteutil-intek-2020-nqcuong96-1.0.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.4

File hashes

Hashes for spriteutil-intek-2020-nqcuong96-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c51e1b63f85384985bad7c61dabef655bac31a65aa5ebe7dc2c068aff8744efa
MD5 af1250c0868d58255522ebd777f286bc
BLAKE2b-256 4b3c674f44d8a2e4f2a77d2dc47fef0c214c880f10adb647abd52a0e9f97cb2b

See more details on using hashes here.

File details

Details for the file spriteutil_intek_2020_nqcuong96-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: spriteutil_intek_2020_nqcuong96-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.4

File hashes

Hashes for spriteutil_intek_2020_nqcuong96-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 00c342ea7573b3f293dfbc8b110854f6af49b2d0579a11666e209cd99b7295d2
MD5 4e9a6f1dede59137b648134fcf19bb86
BLAKE2b-256 6f87b9b56addbd391c4a91357f9755bab5065951e25783eb6111a454e1ddfc58

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page