Add your description here
Project description
spyrite
Python library to create MapLibre/Mapbox compatible sprite file.
Features
- Few dependencies (only Pillow)
- Input: Image files of icons (no SVG support)
- Parameters:
- max_width: Maximum width of the sprite image, default is 1024
- icon_height: Height of each icon, default is 32
- padding: Gap between icons, default is 2
- Parameters:
- Output: MapLibre/Mapbox compatible sprite files (sprite.png and sprite.json)
Sprite Specification
- Height of each icon is uniform (icon_height)
- Width of each icon is proportional to the original aspect ratio
- Total width of the sprite image does not exceed max_width in almost all cases
- If an icon is too wide to fit in the remaining space of the current row, it is moved to the next row
- If an icon with fixed height of icon_height is wider than max_width, the icon won't be resized and set to a row as is. Then, width of the sprite image may exceed max_width.
CLI Usage
uv sync
uv run python -m spyrite --help
usage: __main__.py [-h] [--output-dir OUTPUT_DIR] [--padding PADDING] [--icon-height ICON_HEIGHT]
[--max-width MAX_WIDTH]
icons_dir
Generate a MapLibre/Mapbox compatible sprite sheet from PNG icons.
positional arguments:
icons_dir Directory that contains source icons
options:
-h, --help show this help message and exit
--output-dir OUTPUT_DIR
Directory to write output files to (default: current directory)
--padding PADDING XY gap (in px) inserted between icons (default: 2)
--icon-height ICON_HEIGHT
Height (in px) each icon is resized to (default: 32)
--max-width MAX_WIDTH
Maximum width (in px) of the generated sprite sheet (default: 1024)
uv run python -m spyrite icons_dir
# This will generate sprite.png and sprite.json in the current directory
uv run python -m spyrite icons_dir --output-dir output_dir --max-width 2048 --icon-height 128
# This will generate sprite.png and sprite.json in output_dir with specified parameters
Example
# convert maki-icons https://github.com/mapbox/maki
uv run python -m spyrite sample/maki-icons --output-dir sample
sample/sprite.png
sample/sprite.json
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
spyrite-0.1.0.tar.gz
(5.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file spyrite-0.1.0.tar.gz.
File metadata
- Download URL: spyrite-0.1.0.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0e21c9cad7b17936a563f39a62e1d8644ed68ba93b85fd8692201d929941b90
|
|
| MD5 |
478267c4b224bf2943b15384a2cb1d75
|
|
| BLAKE2b-256 |
578a5dae46c26853e5f32f1f22a7e20f319c5968611200b79eb4ef3ad8dff857
|
File details
Details for the file spyrite-0.1.0-py3-none-any.whl.
File metadata
- Download URL: spyrite-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2df730cfd7e0394a3b41cfc968592930a9d0f320fb8ef4775f672d868bc13395
|
|
| MD5 |
2923cfd190555dec4e7370721c600a83
|
|
| BLAKE2b-256 |
72b8ad5b05b552c95178ca0c55cc891a71810179f00cf8851205e616a33da03c
|