Simple texture atlas packer
Project description
A simple, runtime-dependency-free texture atlas packer.
Basic usage:
from patlas import AtlasPacker, load
from glob import glob
ap = AtlasPacker(side=2048, pad=2)
ap.pack(glob('images/*.png')) # list of images
ap.pack(['images/image.jpg']) # can call multiple times (packing quality may suffer)
ap.atlas # memoryview of RGBA texture
ap.metadata # dictionary of image locations and image format
ap.save('atlas') # serialize as custom .patlas file
atlas, metadata = load('atlas.patlas')
See demo.py for example usage with ModernGL.
Features/limitations:
- Uses
stb_image
,stb_rect_pack
, andstb_dxt
from stb- Can import any image format
stb_image
can (see here)
- Can import any image format
- Only square RGBA textures (currently)
- Optional DXT5/BC3(?) compression
- Optional OpenMP support (disabled by default to reduce wheel size) can substantially reduce runtime. To enable, build from source with
OMP=1
set in the environment, e.g.OMP=1 pip install patlas --no-binary patlas
- On Windows, should "just work"?
- MacOS may need extra packages, e.g.
libomp
from brew - Linux may need extra packages, e.g.
libomp-dev
on Ubuntu
- Save to a custom
.patlas
file - Includes a command-line utility (see
patlas --help
for details) - Requires Cython at build time (but source distribution should have pre-generated
.c
files)
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
patlas-0.0.6.zip
(158.2 kB
view hashes)
Built Distributions
patlas-0.0.6-cp310-cp310-win32.whl
(116.5 kB
view hashes)
patlas-0.0.6-cp39-cp39-win_amd64.whl
(138.4 kB
view hashes)
patlas-0.0.6-cp39-cp39-win32.whl
(117.0 kB
view hashes)
patlas-0.0.6-cp38-cp38-win_amd64.whl
(138.4 kB
view hashes)
patlas-0.0.6-cp38-cp38-win32.whl
(117.0 kB
view hashes)
patlas-0.0.6-cp37-cp37m-win_amd64.whl
(138.1 kB
view hashes)
patlas-0.0.6-cp37-cp37m-win32.whl
(116.0 kB
view hashes)
patlas-0.0.6-cp36-cp36m-win_amd64.whl
(156.6 kB
view hashes)
patlas-0.0.6-cp36-cp36m-win32.whl
(127.9 kB
view hashes)
Close
Hashes for patlas-0.0.6-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2d9e546fc669efdef695b72841cef2c3f81e96de7d38e83bd5d7ec086aa36d4 |
|
MD5 | 4dca23d780df7b911055f25bcb063658 |
|
BLAKE2b-256 | 196396145c5fdb85eaf40b52b091e7ddf0ddc68421779136d4a651480699cda6 |
Close
Hashes for patlas-0.0.6-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bc91e834ccaf99d17dd54bea24786b1116817dc8afdd0b0850174f49f7bb2e5 |
|
MD5 | a169b34515940b54d13e697d5a1dac9e |
|
BLAKE2b-256 | 30fa83cd05ff4fd5f0e7d501caeabcb18d148b70922ae04f1af80bc346f0abfd |
Close
Hashes for patlas-0.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2feea24168c2f50f5f135405e89c5097c7c0f42e8d25acbf987454e1e195a767 |
|
MD5 | daa17937acfcb3692736263d69defd99 |
|
BLAKE2b-256 | 28df085851983841912cf56791313d58c9b08bd44a5003b3e2ed7de8240b35cb |
Close
Hashes for patlas-0.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c93f4258b4a7484f0023302ba8abb2720fe5e6276839f3d3b3eac611a5a458a9 |
|
MD5 | 8b656e72370d91b6e620595b8eebb59a |
|
BLAKE2b-256 | 3f67c07b3c1e9b5c1e29107850d70c1e4f30143e28b1e1e7d50e5df792c1e891 |
Close
Hashes for patlas-0.0.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4866e7285948fb6087ad67b6e5182a9e50033b268ebec316dea7eb4ac8395838 |
|
MD5 | 26ba135071093e287b59529450ceec75 |
|
BLAKE2b-256 | 559e38ac179a1b49d9113c4977613b093f4cd914ca2149665713420a08611bd0 |
Close
Hashes for patlas-0.0.6-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 699529399e519a4687a4985c5bbeb108337d899ec91a026f302764c1f73e8fa0 |
|
MD5 | 2a3a72fff95bcb752ad18bb4b00adad2 |
|
BLAKE2b-256 | 6ee98c91b0747726a4e8dd62df389308059d2340160b6869ee418664e72d47c2 |
Close
Hashes for patlas-0.0.6-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec910d7e057e23d8b8cef74c1daa035c57c046f7312b99cfcba807225955de57 |
|
MD5 | 25e901e59f1daadcf803617ed6f85ca3 |
|
BLAKE2b-256 | 499fa8624cbaa3ffaac4e568bb09af065c4ca15d216c73e5c8b88641337f63e9 |
Close
Hashes for patlas-0.0.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 785b4f8af43a39af3f6ed796a6bb9752c38e444ce097f70680c8efbe3c5b6315 |
|
MD5 | 42cdaa6a6de72f607c9ef4f370ed0cca |
|
BLAKE2b-256 | d7e46aa9d27965f95facc9a165ce9a6789efdef6dd456fc39df736e7a51fc7eb |
Close
Hashes for patlas-0.0.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 060791e03f1d7df559bae701881a536de3891ed747c203e2205cf7feeaa6d13e |
|
MD5 | cd2a0d010837a2d63e8c073aede656a4 |
|
BLAKE2b-256 | d52e2167ed82658884ee57713bb7fe45dce00c9f3acb15040699f0691d0adb26 |
Close
Hashes for patlas-0.0.6-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb8417e44c638875e66e05b8aacd562e7341accb5f8ad7c5c9af1bcad80b436c |
|
MD5 | f2a796d9b4090464216fd3aae4356ac8 |
|
BLAKE2b-256 | 9010e665f0e18dea9bb8d74630493390efcbe167d171f07d47ba5004673b6ddc |
Close
Hashes for patlas-0.0.6-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d05fed7c150da2d9adaff58cc09bb49afd0c016a67fc04be9a2a61c355ed7de3 |
|
MD5 | b57e7ca0a243839ce5df170342a93a2f |
|
BLAKE2b-256 | e530c004ec76b53c2ad59866fe0da1967af99c0f1090a9fb687986094f7e4b56 |
Close
Hashes for patlas-0.0.6-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c03bf463864f239cce66e447cf8637303d1128a53f690d9a25229175ea43aa00 |
|
MD5 | 1c58a835f119e64b5907a61add557bb7 |
|
BLAKE2b-256 | 0407833115d35f16fe566f48ab5de4f7ad1f526b979f43c944dbe201eaa529eb |
Close
Hashes for patlas-0.0.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 015b78aa8564bfeb41c90a33e2e64b53f6c09d20571fed780f49b34a04bc352e |
|
MD5 | 21e2ed8d1a21b907032c1eb77a98e3e6 |
|
BLAKE2b-256 | 1623dd24b94d56af6f1dafef973025a827bdcb4fae2ee4e42b25851a5639e686 |
Close
Hashes for patlas-0.0.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02bb0bb9913f6c2662cd5bd4a3e58655a98b8429f560709bdf12452c95d49f8a |
|
MD5 | 1addc962823b732c452dd37059fc3941 |
|
BLAKE2b-256 | 61ad55709d14d215fb5c4f0eab2c3d0b30c1e03a0f87957af918e01e75187b79 |
Close
Hashes for patlas-0.0.6-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9b1a1e5ceb6e17b97058fe64ab5e510f67eb79cb4efc50c316cb4b2fb94a5ca |
|
MD5 | 0f4436f0b5180a5ecbf15069ef2a0628 |
|
BLAKE2b-256 | e033062259eaecdac9bf562c2a800620226078b05e82b19a7ff98b075f80b6a0 |
Close
Hashes for patlas-0.0.6-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed9dbbaf3df736763f4e2935e43d2d37bfd69741a465229b0f3e03979b92984c |
|
MD5 | 6de5665922e333311c2917fd78a3575d |
|
BLAKE2b-256 | 4263b76b8e74b0128b780d10547a4d1be31559e976b964e1553e5e122c33ea00 |
Close
Hashes for patlas-0.0.6-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3326f3fa1362098e44bc67e33cd534a82b9c54e35bff2911d7dd6a0ba596e7c |
|
MD5 | 2019acfd71e46da2a58151c7446c4687 |
|
BLAKE2b-256 | 2ac2c803678c104f2e12a85c15d0e25e7ef43b72187bb885003d4a5c7b8fbdeb |
Close
Hashes for patlas-0.0.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01c1bba3f757f90be4ac9ea9727cca004797e6017d33147f261fb9052414f732 |
|
MD5 | 7ded03857fef3bdb53f076630509e694 |
|
BLAKE2b-256 | e42f6b8d4755fc40020af15cf3ec61ea5f4fa4e582828477eecdd0a63d873a6f |
Close
Hashes for patlas-0.0.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52d9cf3860d6fdb496b2050b291e199817fe10aa6c303c9191ba6e49bec2ee4f |
|
MD5 | 7c4899996d9ce19344aa6db9fbd0a151 |
|
BLAKE2b-256 | 0ecb9d008adaeec4cb9e58fe2ef2246655ab4f7b927f97fe29b92ebb4afe5f62 |
Close
Hashes for patlas-0.0.6-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26be4232e1a010a0fc744453aeace7083f51ac769817db05e17a09ce990ea1e5 |
|
MD5 | 0be1f87995a6a321dc081d0ba93effab |
|
BLAKE2b-256 | d6fc00acfa6c8669ba65c7518bd59e4b56e97f8eb330ca2df7d4bb2f30f33b26 |
Close
Hashes for patlas-0.0.6-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 259fc18e5e34749ae15a565ccfadca3e8172fcca6552f330f0df28072dd54f25 |
|
MD5 | 08752409f7868708aba938c79939f310 |
|
BLAKE2b-256 | 69d9954f1ffd490db21a0adf6f510b21e97b6ad342fe8b218bc8a197dfd11878 |
Close
Hashes for patlas-0.0.6-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b31fe19800125ebf9836f7ad586a20eceb416d1e01d5beab73928da225bb7b6 |
|
MD5 | bb083862466550e11d848c6c7b5cf1fa |
|
BLAKE2b-256 | 578ccf106deebf5d71a4595d4891f894bf2daae9bd25ca635622dec780b3265c |
Close
Hashes for patlas-0.0.6-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8730ba48121962c946b7a507fffe3955b910044a5c3ca398b3df6836fc38f0aa |
|
MD5 | ac904301c5338b693d628a56acfada6b |
|
BLAKE2b-256 | 39c15f7fe07a58afccaf34b3e12a398030aee222dfb017c8ca3ea82ede180a1a |
Close
Hashes for patlas-0.0.6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e546acfdf6b1d928f66de52928b1a469e132d249fca9bf52a19b17a6acd65a78 |
|
MD5 | d4c4341d445191945745124989c87d59 |
|
BLAKE2b-256 | ea17f63499cae225768e93f32eb3eb9b9e60a6cd77c58e8017e3100a4cd32744 |
Close
Hashes for patlas-0.0.6-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ac78597033529ba5bb1a5681a4c06810ae886e0afcb060c894a18d09bf43266 |
|
MD5 | 2d38a8df12f87ebd878fa96ccb2378ac |
|
BLAKE2b-256 | 36e390910ee89dd86953e0a67fbe59efc71b8b3eebe650974d78318cdd8cc207 |