python wrapper for etcpak
Project description
etcpak
A python wrapper for wolfpld/etcpak All relevant function and class documentation was taken from wolfpld/etcpak.
Installation
pip install etcpak
or download/clone the git and use
python setup.py install
Example
from PIL import Image
import etcpak
# load image
img = Image.open(file_path)
# get image data
img_data = img.convert("RGBA").tobytes()
# compress data
compressed = etcpak.compress_bc3(img_data, img.width, img.height)
composite image for format comparission
import os
import etcpak
import texture2ddecoder
from PIL import Image
FORMATS = [
("DXT1", etcpak.compress_bc1, texture2ddecoder.decode_bc1),
("DXT1 Dither", etcpak.compress_bc1_dither, texture2ddecoder.decode_bc1),
("DXT5", etcpak.compress_bc3, texture2ddecoder.decode_bc3),
("ETC1", etcpak.compress_etc1_rgb, texture2ddecoder.decode_etc1),
("ETC1 Dither", etcpak.compress_etc1_rgb_dither, texture2ddecoder.decode_etc1),
("ETC2 RGB", etcpak.compress_etc2_rgb, texture2ddecoder.decode_etc2),
("ETC2 RGBA", etcpak.compress_etc2_rgba, texture2ddecoder.decode_etc2a8)
]
p = "S:\\Pictures"
for fp in os.listdir(p):
if not fp[-4:] in [".png", ".jpg", ".bmp", "jpeg"]:
continue
# load image and adjust format and size
print(fp)
img = Image.open(os.path.join(p, fp)).convert("RGBA")
img = img.crop((0,0,img.width-img.width%4, img.height-img.height%4))
# create composite image
comp = Image.new("RGBA", (img.width*8, img.height))
comp.paste(img, (0, 0))
print(img.width * img.height * 4)
# iterate over all formats
for i, (name, enc, dec) in enumerate(FORMATS):
print(name)
# make sure that the channel order is correct for the compression
if name[:3] == "DXT":
raw = img.tobytes()
elif name[:3] == "ETC":
r,g,b,a = img.split()
raw = Image.merge('RGBA', (b,g,r,a)).tobytes()
# compress
data = enc(raw, img.width, img.height)
# decompress
dimg = Image.frombytes("RGBA", img.size, dec(data, img.width, img.height), "raw", "BGRA")
# add to composite image
comp.paste(dimg, (img.width*(i+1), 0))
# save composite image
comp.save(os.path.splitext(fp)[0]+".png")
Functions
- all functions accept only arguments, no keywords
- the data has to be RGBA/BGRA for the RGB functions as well
- all DXT compressions require data in the RGBA format
- all ETC compressions require data in the BGRA format
see etcpak/init.pyi
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
etcpak-0.9.10.tar.gz
(437.9 kB
view hashes)
Built Distributions
etcpak-0.9.10-cp313-cp313-win32.whl
(687.1 kB
view hashes)
etcpak-0.9.10-cp312-cp312-win32.whl
(687.2 kB
view hashes)
etcpak-0.9.10-cp311-cp311-win32.whl
(687.1 kB
view hashes)
etcpak-0.9.10-cp310-cp310-win32.whl
(686.8 kB
view hashes)
etcpak-0.9.10-cp39-cp39-win_amd64.whl
(843.7 kB
view hashes)
etcpak-0.9.10-cp39-cp39-win32.whl
(686.6 kB
view hashes)
etcpak-0.9.10-cp38-cp38-win_amd64.whl
(843.2 kB
view hashes)
etcpak-0.9.10-cp38-cp38-win32.whl
(686.2 kB
view hashes)
etcpak-0.9.10-cp37-cp37m-win32.whl
(686.0 kB
view hashes)
Close
Hashes for etcpak-0.9.10-cp313-cp313-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4977976a69b6aff859f495823dc9e83b800d5c1cda37bb2ae3e93e54ef6b6f3 |
|
MD5 | 8a04bda12a53212e0bba82bd18ede84c |
|
BLAKE2b-256 | a9afe89fcf279cae4e1e907e180e623bb2955c530bb815a1ce3d3ed234fbe612 |
Close
Hashes for etcpak-0.9.10-cp313-cp313-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f19412e6640d1a9399dad223164cba2dbfb07456328d6ba85d6dc508e3d09575 |
|
MD5 | 3ca8d414ffc19808b32b25dcb32613b5 |
|
BLAKE2b-256 | 31860643dd5f7c13f95b7079da6a5bfa63039f55c20231fba3c93b6a367d047d |
Close
Hashes for etcpak-0.9.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d734fc2effc358a697b912a5d74157a012e17a7b958ece3e05459936eaada9be |
|
MD5 | 7e512134c01c46d89000ca818744d20a |
|
BLAKE2b-256 | cb540cdc108bd1c2359ac2db09225260d464f0d3fb4e4210a3cee2209d6274bc |
Close
Hashes for etcpak-0.9.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f083648c87d6771e116a15460ced59eda38cbac97fcad6665619b816bc60ec7 |
|
MD5 | 8d39fbbf19d6b12ac9883d7698690794 |
|
BLAKE2b-256 | 1123da6d06a898091a4b3c23366eeab4cb5a0ff4a9fb73b7d728e638a6932f11 |
Close
Hashes for etcpak-0.9.10-cp313-cp313-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f210a2af88d4c65dc21a3c064c194b8759b093df22642b9f67efbaa1ee2c91ba |
|
MD5 | 3f3130fa294cb455f8861e9f2ff4510f |
|
BLAKE2b-256 | ae4c599d0ab7a576ab990775b4b225159894941147ee1e7ed4b824c1962ef500 |
Close
Hashes for etcpak-0.9.10-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ec5f5b14c19fbdce17bdea18ba2e33ac49c4907c9f79a12de298c0f0a2f736e |
|
MD5 | 4f9e2ea42e35690d26e3069d07710970 |
|
BLAKE2b-256 | c1caabca3eeec6d1f2e3d87deacefd9c2dd65c9b1e9c4b3c8abd08c42036fb2a |
Close
Hashes for etcpak-0.9.10-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c777e6db107afda0cf9fd2d906d611ee74b1fbea41c887a9b7486e168ecd1f77 |
|
MD5 | 3345cbe255cd5b823a3ccb4c56157d0c |
|
BLAKE2b-256 | 4ef60a4b25c54408a643443988f2b57e4c2cd72272fe1719e475892d343c00f0 |
Close
Hashes for etcpak-0.9.10-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84d6e89c77a3c1c1a8bf4d7dce379de961a18ed840c62d2d9df9d8306e224ea4 |
|
MD5 | 6e4ddee7ebc5b2e480db161fa8e7199a |
|
BLAKE2b-256 | 69f6b816e5a9881f0eef7965b09ca5582bfd712d34a558512a80b6df79e82577 |
Close
Hashes for etcpak-0.9.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a707f6dad1c4d01440f41993f71e3ec0c6f476ac1989b4a9a6500d52aec045c8 |
|
MD5 | b0f3df2f8eb19730f6e8cbd3192a77b2 |
|
BLAKE2b-256 | e203335b57c37de1bea3f77217e6057aa258087927721bca34a3d8edd76354e1 |
Close
Hashes for etcpak-0.9.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83330f83c7a72763a5dc91657af3862d243b423260ab349dc19b06230738f445 |
|
MD5 | a700f4f54cecf3e4cee4cbac9765dd5d |
|
BLAKE2b-256 | 6d98113dacaffd951aa9e00613c85d8299cc23592619259ac47fb5b584ffb505 |
Close
Hashes for etcpak-0.9.10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c8efa89d55b1f3c18b890810a24ec2ab3a3f195a13e37f3383766ec6eb18eec |
|
MD5 | 8fac5791d190db0fecbb8a4379009ad4 |
|
BLAKE2b-256 | 64658ee87cc8526fab7e027e6404996b13114634a3505990d244189e3c33c726 |
Close
Hashes for etcpak-0.9.10-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4155e5b7f1a23cf8108525a1219eb9894b2ac518a0ab7126c835fcbf60bc0be3 |
|
MD5 | 3e6a72febfbee1cfadcdad4c4ede0f96 |
|
BLAKE2b-256 | 649266cfeb44534b81ce76de0cf23c3db9f7be1c04cae93ea4d11aa5c8aa7521 |
Close
Hashes for etcpak-0.9.10-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6053e42113bcc088cfcf3d5987ec83e4ad12ae37cfa5bc7ef638328e3c4905f7 |
|
MD5 | 809d62e0f50f1bf1449015d7fbfbb6bd |
|
BLAKE2b-256 | 1a609dbc39e613fbba212cf0dba8600325742187ec1e01e090a8040bc4e1e386 |
Close
Hashes for etcpak-0.9.10-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2be95e67d0c64bde08f58f2ab06970cc9f121e77cbce94a666b57d7b57b8ea2c |
|
MD5 | afbd1c66ca031c4cf46dc86a984ae002 |
|
BLAKE2b-256 | 19d0911770737f017c984efe2c4abcff7508e8df6d6b8b56d4b0de802bbfe838 |
Close
Hashes for etcpak-0.9.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56add61c424b9158ed2ca4c769fa77f20fcbe22696af9f5d563aa31caba90986 |
|
MD5 | 813f9209675dd06ca3e3a127062a2655 |
|
BLAKE2b-256 | ac8a0a2cd1c6c929480ddd07dcbaf0a9681dbefa1c94313d6f99761dffb4c6ac |
Close
Hashes for etcpak-0.9.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72d7db11b83244b414ff41c3302b2ef14312ea47d9b0a0a382da877f85841163 |
|
MD5 | 1ea185f4afad4f071ddb152d42e7b113 |
|
BLAKE2b-256 | e6e76b5c32c921ea6e4d96e445a93dc5b5a8eab5d213939f721f91ff89518799 |
Close
Hashes for etcpak-0.9.10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93eec1609437d8ffd1442cf68247c7ad6c62b6d042394ff04c48f55070bec3b8 |
|
MD5 | bc7d899c596e717689c4d79f190ab484 |
|
BLAKE2b-256 | 9377059cceac5c84a411122aea82afde3c36f9b469cc20b316bf5dfc42601502 |
Close
Hashes for etcpak-0.9.10-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b9f55fa26ec547ba004c5b4d68c4d8e1fb23d62e05f8dbc4cd326318cbfe109 |
|
MD5 | c583c80abac515e6cda0ecfb714dd1c7 |
|
BLAKE2b-256 | 7bdfcc7fe509b1dd3715ee9bf8d6f112078d23235980b5036566dbbf3afe9759 |
Close
Hashes for etcpak-0.9.10-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ea4d6ad7de66106b5bf9d5d069981756d02568c203bb92917d201e781e3597d |
|
MD5 | 12ce10c63c86b17d35e33ca2a813f2e9 |
|
BLAKE2b-256 | b2cd8293d13e038dd94b912d695903e9a9b91d556a2e5a6bb59f4ef606630808 |
Close
Hashes for etcpak-0.9.10-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a010671cb881774be158968b422c31854a6d2702ddc133b7159a3401112d577c |
|
MD5 | 219175c2bff7549fc8ced79f579d0b39 |
|
BLAKE2b-256 | bf01dd72a63a9f235e6170866f8814e2cd2ac6f21c26d03696de698d3e5fb08a |
Close
Hashes for etcpak-0.9.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a97381b31e26be84b7b9d48a43e81e4f2684252c7af7663caedbe69dda0f8553 |
|
MD5 | 7bf5ca4cd6df2060d8437d2b6d4bad8f |
|
BLAKE2b-256 | a588a1e352e7728ac8e30cbc2287d964779a6975a8ca0f86c71781c059d525a5 |
Close
Hashes for etcpak-0.9.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b379000280488f07993e8a27ec7a6b7973d3d480aa01bf58ce9d2c8b6a66e8ef |
|
MD5 | 43c3236cfa2b1ea5116d2e4f0d59587b |
|
BLAKE2b-256 | 981408f0942416b7e3a35426e84e0c3c1e0466c08b39f3196df946e6530f1a80 |
Close
Hashes for etcpak-0.9.10-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 447464a1b3313fa43cbb3f53e2b1bce1be26921ad9ee9cab12638a403b74fbf4 |
|
MD5 | fe038e60f1c8f1f527c759287f946540 |
|
BLAKE2b-256 | 90c6cd1f50f1471234f72e22a6bd9185d1e066fc49dab557694b317292d88a5e |
Close
Hashes for etcpak-0.9.10-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9234e08085d0b1b92f8959cd402e955b69da53d137bd1c09e7055ae3d320d70 |
|
MD5 | ce06470eb7b44ad64f545be4008ad9e9 |
|
BLAKE2b-256 | de70557a83eb12322a24c5876c87e9049a6a658362ccfa8e79b8f943a09c694d |
Close
Hashes for etcpak-0.9.10-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc8b47b376d58a08574ec2756d38cfac6422eb1f03d5b4a1e8a88fc062fc506c |
|
MD5 | ba74b73fe347b014ec0b1ade74284eb3 |
|
BLAKE2b-256 | 4e1749e0ed0a0a8cce59eb3cf263490267ee976c0fdf2f4eb8daf6fa5df9ba49 |
Close
Hashes for etcpak-0.9.10-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8668554e331873fb266396da4ed6856e27aed2d4922fb74a5b7c37ca5c739779 |
|
MD5 | dbd7ff243ebc8547c63ea24b8fcb18b3 |
|
BLAKE2b-256 | 333b3597dd3ee9d14ac902f0ef9689c8b0f2e4b685a57f999a0ab67b125e2a9d |
Close
Hashes for etcpak-0.9.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1da10f066cb1f9a17160313a62bb3a1c31983efb19fe22d4e42ed6dee5eec7d |
|
MD5 | 498de2f95170df55f068ed52dea0f48e |
|
BLAKE2b-256 | 6fa25d27b08b7933f7e61b3acffc43861f732ef11c41fe68ac44afb7952ef4b7 |
Close
Hashes for etcpak-0.9.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3790cb724fe0489dcb20fa0e7da1dfe0371266f6d792e954b2c0a00c81b328f7 |
|
MD5 | b5d36de16c33c04a491dc16750377534 |
|
BLAKE2b-256 | fd991e47709e6a215cf119787cc79d3e39f29995c88dba4469fa6edbd27a5695 |
Close
Hashes for etcpak-0.9.10-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe798ef6a94fb095c29c03a628152e728a4b906790993c008bf826a5425294a7 |
|
MD5 | 0359d8be9a89c1d2670f39d6e199e0b8 |
|
BLAKE2b-256 | 3cd1d8a2ff5841538edff8fcb4c7912b61c4564bbb3eb91f8e0a076a33c84af1 |
Close
Hashes for etcpak-0.9.10-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25ac059e30d9db07e0dac6d47f6a98c945b0886b89cccfa449bff6690544bbbf |
|
MD5 | 57f3ad679f12311c0f5f73e97e4a0e06 |
|
BLAKE2b-256 | e0ec1fc2748babfd1db2bffb55cad3f653262f33c9b93d8086550f2eb2c70631 |
Close
Hashes for etcpak-0.9.10-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e6cdb4238a02eaa72d309fc7d0c692d5aae2a9c28136c37958b0f72c459b478 |
|
MD5 | 27b15017c71ad9db13bf2153c83d34ee |
|
BLAKE2b-256 | 127e5a4612fdde499020ba683fc4c1ea7ef007bffc6941f1aad11d3cc49067de |
Close
Hashes for etcpak-0.9.10-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57eb6a7ac382d380b1d42578604c1ea267531e25d92c87b204be87aed9a49a71 |
|
MD5 | 40b901217ea14e1e909245e39210f9ac |
|
BLAKE2b-256 | 2738df872a622180b6e979a6783ffc20f91c80cbb47b31039dfcdbc8f40b7ecf |
Close
Hashes for etcpak-0.9.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3d01b7178d46b1f646dc5e7143941a4592518ea85021d3079e7b5e6f6f74760 |
|
MD5 | 42aafa7220422428b277068c5f3018ce |
|
BLAKE2b-256 | 225b3596528465ad6128776834ed1d4a0f3eed5ca4af6651937889c3b37d4850 |
Close
Hashes for etcpak-0.9.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3aefc50a16c6f0d2cca9edcb3e5a9ca216d24f64122fc972361e1e775b24b77 |
|
MD5 | 08768212c4cea92dff0f08fcc3543ee3 |
|
BLAKE2b-256 | 17c82774e363bf6298a8e5881daaec889bfd063cd77be8fc3140dfca2e47b4e0 |
Close
Hashes for etcpak-0.9.10-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb7e1687261fea4c290d3157f42e42dd433cea365a597b2298876cad5a883bd6 |
|
MD5 | be3807928ac8a26ef95db95e177c7d1a |
|
BLAKE2b-256 | f359dd5ccd65bc4e7befb810559821d12ace60c9907de5ebaef194d05a5402cc |
Close
Hashes for etcpak-0.9.10-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 379d6e4d4a9fe62c7a5dadb9daddbb176079ed697bd61d01604e1f0f493eee77 |
|
MD5 | 6b0af783a983dcd0be25fb38075333c4 |
|
BLAKE2b-256 | f6ac6df215c7bbc663ea0a7466dedc85a2574cb4da77fc135f72d80754f659a0 |
Close
Hashes for etcpak-0.9.10-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f728619be2f4a8b5682604b646b6a0c94a2608666d89f04874fdfe4dd5340c5c |
|
MD5 | baad89ab35fde9e7819b8e988b18d433 |
|
BLAKE2b-256 | 3fcfe5dd41454f57f13c136300678bdf5005bb4cd4df050960569f11c43dbb48 |
Close
Hashes for etcpak-0.9.10-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9f30c543d742ed75d50136018c62a659bdf27cb0e2521082237ca3dd87c095f |
|
MD5 | 2c659cbe0c1a86b42a548921e5092121 |
|
BLAKE2b-256 | 6b594bb08a31b7744db1b82343fff327ebef30383b55dcfff8e29cf034ffc9f1 |
Close
Hashes for etcpak-0.9.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8303f367bcc9404004a45eb09f41ebeab8c9738e2d8d7cb18fd5f79bba0b16b8 |
|
MD5 | 4a9b5631356420531ca488c93d4ddaaf |
|
BLAKE2b-256 | d01d4edc50a941fabdbf60dcb650755efe392d14fdd3611dc8d9cba61d118ac7 |
Close
Hashes for etcpak-0.9.10-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06fd736a537354e8395f0d0e1a0f7371971437cd30f92dc8eb1dbf3c1ba99902 |
|
MD5 | 84cd47c6f3955678912c12823708102d |
|
BLAKE2b-256 | c0f2f2c3c12661a6aa7cf9210e1fa621b91e099aa33feb58c5f120fc9f597222 |
Close
Hashes for etcpak-0.9.10-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 791c98b7b2f4ecfdb287986ca07b42aee54d0793388043d3cc96badb1f1785a9 |
|
MD5 | b9a57edf2396a721b6c81c47b65375b5 |
|
BLAKE2b-256 | 09e1fdfe66d0715fb280f9bfc52066d72090dbbde53a70c300eeac084c9268bf |