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.11.tar.gz
(444.7 kB
view hashes)
Built Distributions
etcpak-0.9.11-cp313-cp313-win32.whl
(689.0 kB
view hashes)
etcpak-0.9.11-cp312-cp312-win32.whl
(689.1 kB
view hashes)
etcpak-0.9.11-cp311-cp311-win32.whl
(689.0 kB
view hashes)
etcpak-0.9.11-cp310-cp310-win32.whl
(688.8 kB
view hashes)
etcpak-0.9.11-cp39-cp39-win_amd64.whl
(846.2 kB
view hashes)
etcpak-0.9.11-cp39-cp39-win32.whl
(688.5 kB
view hashes)
etcpak-0.9.11-cp38-cp38-win_amd64.whl
(846.1 kB
view hashes)
etcpak-0.9.11-cp38-cp38-win32.whl
(688.2 kB
view hashes)
etcpak-0.9.11-cp37-cp37m-win32.whl
(688.0 kB
view hashes)
Close
Hashes for etcpak-0.9.11-cp313-cp313-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b17372c8e3894ec5217fac550dfbd480a0efe19249c458180aecfae0808da5d |
|
MD5 | 21d07b816cccc85de97f6dcd296cc137 |
|
BLAKE2b-256 | 418583d0c09e0581c9ebe54c83f32aa927a41820fbed28513d9fddb5bb54a6f5 |
Close
Hashes for etcpak-0.9.11-cp313-cp313-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ef7c88be35370f9b82d6ed0c8819fb2312e3f3713137fa89575c151c18b6201 |
|
MD5 | 491aeb0645b42ad9108cb476084c5a23 |
|
BLAKE2b-256 | d2278833a71219ce9b094f3c21b9ab642ab81ed7d52942347b807913505658da |
Close
Hashes for etcpak-0.9.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a09e04aa393abbae85378fe10a2384e461e4b81a6cce80fce7d0dd8c2099173 |
|
MD5 | 6285baa53791fcc9c488bc34e5e24dcd |
|
BLAKE2b-256 | 74ccaf010b64393956d8592910fb0136b29a58c607cf313e6102facc24eeab0d |
Close
Hashes for etcpak-0.9.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff27ac5c137ff6b96130d5c81d4b9e0461e9aff5160dc1cb78a9c4efc9ede6c1 |
|
MD5 | 51fdf4ce7ec926a43ce06691f046120b |
|
BLAKE2b-256 | 5f75334c78942ab02c3c43e4c8735980b61ec62425a726311f781c12afed3040 |
Close
Hashes for etcpak-0.9.11-cp313-cp313-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58b60a447d4833eabfe95f2f4484b852edd6335f378ebc9d47a827b5bd657116 |
|
MD5 | bda90dd1c6a8d83e01ea484701767fe0 |
|
BLAKE2b-256 | 34324f23b33ce8caec720cdbb8709e7145db48b07a71fe15812427fabc230db6 |
Close
Hashes for etcpak-0.9.11-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0a53a990bfca06fe743749d5a7e0a774d7b4fefbd26467a67aacc62fb32d9a8 |
|
MD5 | b3e87726cd1133c57f930a90a1289d04 |
|
BLAKE2b-256 | b69809b786f21e76aba3807a3d79de249a5c297ed0daf9771f4dd1bf3c01b746 |
Close
Hashes for etcpak-0.9.11-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71baaa68a016d15fb5511e424e176e269ca7ec15984e3a095645a1dcaf9437ed |
|
MD5 | 8751692fd9053636a1d4003aaf0ca6a1 |
|
BLAKE2b-256 | ce1d201dc7aa2d467f427856c3bd51fcfcd8bac0ed6f9f8218bb40e0e3004bd8 |
Close
Hashes for etcpak-0.9.11-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d93fb15b59e9906a08ff5838cf659044d8fc102d35c4bff23a6dc1798c22a797 |
|
MD5 | 0a4d145a52c18a808aecebc5bfa930c5 |
|
BLAKE2b-256 | e8d05c44c6665c342a35d3dc9ed13cca83bd6d0d32e1deffa03fa2405c2e10ac |
Close
Hashes for etcpak-0.9.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1038abf22f21a6b246cb2cb3a25de62c1ed7b0ab702b444bd9b9ac0eac0d2031 |
|
MD5 | f1d09017732ba5afeac1c879b00ddcbd |
|
BLAKE2b-256 | 317d93089808446f694baaf9431ea643e03952d1d051c0b18d2af62f4c07bb86 |
Close
Hashes for etcpak-0.9.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c75517061de5f84dc8185be2e20fac5b4fadcc6b278a68b92f3112b7da276bcd |
|
MD5 | c615c19873fbd94c2883e5db1cf355cd |
|
BLAKE2b-256 | ebddf26dee36930cdb5fa27f2355d28107ca4cd5884fc34313cc05151c80f659 |
Close
Hashes for etcpak-0.9.11-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e9ff4e68172d0c0c8f1985c6077b4766f673db80e745032f82bbff433b85a25 |
|
MD5 | 8e9e84df0ab3b3810da25029285063d2 |
|
BLAKE2b-256 | 2fa9a54b0ee62dce52478a0f28404485ae7aaa512bde72e4e37ba4bb2843d334 |
Close
Hashes for etcpak-0.9.11-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2820ba2c2f97d13cbc68c40b28c1914835706547243fe44d095e4faf9ab34eae |
|
MD5 | 3b088dd89a809ea2cf24b448d6a6c8fc |
|
BLAKE2b-256 | d295469648c8c19d53c02c3616c922dd3b1ac5a832e1a23a0d70ea924dc1383d |
Close
Hashes for etcpak-0.9.11-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9afc35f327e08a319a16c3295dc3f2fd70e69c2af3c31d52f98bed0265bc3b9 |
|
MD5 | 06eb022af4e1c1b4cd62a090e85b64f3 |
|
BLAKE2b-256 | d13aed4e2abd4120100a3a539101254507f22d4dd7cc914716a4ab210110775c |
Close
Hashes for etcpak-0.9.11-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c060710ccc6d3f53cf375027a8558e99fd5447678a325b820d4fb62bcf0147d |
|
MD5 | 8c9f45c3e2bcd5501c084eb3b02a4ae2 |
|
BLAKE2b-256 | e8faa4e755002617adb3fb67acab958cc51cca8a6bb738e86975acc4ef33b6c0 |
Close
Hashes for etcpak-0.9.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f1cd5b6e7d9419a4517c1e3a9d001af2b47d74b1ec26cac87c8cdda0fb912f1a |
|
MD5 | 83f16511a6139a98f92e19a2344663e6 |
|
BLAKE2b-256 | 6ba1865f14974710abf106c6f54ca463ef47fa0c36d879881bd433bb5e50ea5c |
Close
Hashes for etcpak-0.9.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b44ad191fe6c64e55b919a458e73b32046dddff86e078f4569e9eb0c8aee0272 |
|
MD5 | 44f85e8acb056b420b5d7a07a033034d |
|
BLAKE2b-256 | 6eb3537b9a94d7911a818d4d4edbe5e0870110900bcaaf8dff90dee2c5022544 |
Close
Hashes for etcpak-0.9.11-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a869768110b9331b5732d14e38cfa4664ef0c5428d403903da46147ddafc0ec6 |
|
MD5 | 9976aefb9705ed8252606488a02d1c78 |
|
BLAKE2b-256 | 34ca37af12dd6e27b6e9c3d7e97b0d9759fd0f9d8928d670c1b8a49b741d0b01 |
Close
Hashes for etcpak-0.9.11-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2f4be610be09a3e9b6c5c289e1332d99d9546baaf3882ac06c6d5d65ad531d0 |
|
MD5 | e6c3e4b0a82d063cb4eade1749ff8c96 |
|
BLAKE2b-256 | b289283416e405b3775982def93eb42d22c0f67ebc99eca07f02075ba53c1120 |
Close
Hashes for etcpak-0.9.11-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3afc7c16e1c8c2de01ecd27f5eaaf18e8face3556f78ab69026eeb3cdf416d33 |
|
MD5 | 7e4f40f9692a3baf42a523402fe1e7e9 |
|
BLAKE2b-256 | 0cf1e7002fa52c7a164a994e133005217af217b30fd053d4ef7eb5e3ef7f9b51 |
Close
Hashes for etcpak-0.9.11-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e7205d3127ec971a90ccaaabe2f0b43234bcaf2bfe9c546346bd3769ba576f5 |
|
MD5 | 6ad16f54ebbd8fe8e320e0801ee53cd8 |
|
BLAKE2b-256 | f96bf4a878f00530a1ad0990c440767d6103e00e717036224b41acb5669dfbdf |
Close
Hashes for etcpak-0.9.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da3f8d4145d5ba34460b0e7940ba9d9822be7085a7fd9f587cc452112af61dcf |
|
MD5 | 58e1676049a9c0ab715b115933ff9c31 |
|
BLAKE2b-256 | fa5d06a35cb34e9f928da7e03c54d410133c7f988061f39ed357aba81ee9f942 |
Close
Hashes for etcpak-0.9.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 804d0e79ecc90aa2ae6fbca2f208bc21a36ed3e455d16805753f8310726b94e5 |
|
MD5 | 461b444eebf6eb3810da7eea1ced9982 |
|
BLAKE2b-256 | 8a3eabb83c2d2984f95c534dab328ccc745f9a698d169256940fd3dd7478175e |
Close
Hashes for etcpak-0.9.11-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c6655631c031b694b5ac062e303fd6e6ea45da2a2b6c6edf53c098847589a9f |
|
MD5 | 2398f7bcf2a6f6baf98553256029bfeb |
|
BLAKE2b-256 | 2b493c43815703d2de907a1be0a3bcdf6ea9e355880dc59a281de61e4bb9cd08 |
Close
Hashes for etcpak-0.9.11-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 848d60f6e091e95d60f4ff82364f894b386f4f21def0cb4186511dd8af36e13d |
|
MD5 | b344ca79c0a8dab6701d11f470e30b17 |
|
BLAKE2b-256 | 4beffa5454296125fdceb17460e82e7e8d9500cd2ccb9f674a42e7bd1931b861 |
Close
Hashes for etcpak-0.9.11-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82eb696b2b9487d5130a29d90d698a246abfaf7a32cf605c207338be66e92a3c |
|
MD5 | a6906aecaf1777e4921eb8e37997beea |
|
BLAKE2b-256 | 04ef9191263c9cb4a3e3bd3fe79291cb15af9024233ffa6cebd4ef85093e0e29 |
Close
Hashes for etcpak-0.9.11-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bbb40a0630a7581994b73e86dd49a1d17b48e202b48c7e846a77f3a602c0a67 |
|
MD5 | 4407fd590c14e6226886dccbc999ffdd |
|
BLAKE2b-256 | 0269926f70416e60cb4a8a2b7c270b4ceb79a71229e4816ea586c2fe6eb2b96c |
Close
Hashes for etcpak-0.9.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 986e8fc7bfd0e4c8e520c25021ab8aa78cd4302b83cfbd9221b806034061cb8c |
|
MD5 | 3c39c2cfd024fc75e1fb96064423b1fc |
|
BLAKE2b-256 | c5b95615d9b4d6f05cebb368c6241d81ec3b89a54d77cd001aa3f6126af4a3a6 |
Close
Hashes for etcpak-0.9.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b04f30f975dde1a4cfd1cc1d06338301da2ae66aecf4c914e7d7d216be9286e |
|
MD5 | de6a9b16b860d4cee213d26ea18fdde0 |
|
BLAKE2b-256 | 38fe09416e3eb520f333521da7cd1cfe459591e69abf26f4297a43a6248b69ac |
Close
Hashes for etcpak-0.9.11-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27afccdbb1fad3c3595acb3748b13671e005836e75a10775fc6b06ca6a32e9b1 |
|
MD5 | 5aeac0f306b57cb5d9b8843e092d0e7d |
|
BLAKE2b-256 | e202f2cc830c77edc9af5b2bad296d4a98238d46a0f948ed0957d5fe16a4d483 |
Close
Hashes for etcpak-0.9.11-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cddceb59b9e5d70dda0e1a12c20e7de9d6b25b65dccb1909495ccf198a229038 |
|
MD5 | 8fc9c4836a62a4880b18021f70a07285 |
|
BLAKE2b-256 | b8faeca33dcf7a90130f15d1f018e870579b69ab05df037afd32f7033175c78b |
Close
Hashes for etcpak-0.9.11-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b56b52f1e391426ee7f42f1d3cd448d19fda07361fe2a11dbcc664f8f1ea4c0 |
|
MD5 | 5ee7498821d7af044c9c3eec7109c12f |
|
BLAKE2b-256 | b7428834557ecec621f8a26547f3f8851c3bee7523e497f148a1529067cdfbe5 |
Close
Hashes for etcpak-0.9.11-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 787f123966f5a6f30e636fc50d716fc9a7dc36a11c883aca523b9bad26163cf6 |
|
MD5 | 48b31b39d8dc21917212369b4b26b302 |
|
BLAKE2b-256 | f7dd36ed297d712fec66888e50980bfe8460f4d2f4038b978666bef1e982d6b8 |
Close
Hashes for etcpak-0.9.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc10974f256a85d217a2c85197cfdf59e1c825c3335161713e5b8047ab65ca7f |
|
MD5 | ba2f1ef6aa6dfd5fd44e5305b9f66e18 |
|
BLAKE2b-256 | dbffa1311df732c504868beba4b9deac9d154b66dbd59f3dfcc425b5221125ad |
Close
Hashes for etcpak-0.9.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52cc4942fbacb948621e586ac94e717727c40db0fea317e38437a98a9618ab60 |
|
MD5 | 34a6a7dfdce8a79f6e83c389d26ba593 |
|
BLAKE2b-256 | 5a036fcc690eeeec9eec4229569cc476b87aa4952c3a1dc8c24abd87d8f73cf6 |
Close
Hashes for etcpak-0.9.11-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2250f3e52574540048a91834358821b6e95eacdaaf7ac5fc4fc609313cee9797 |
|
MD5 | 64d6803d9c447e7964c2d3772af3e2aa |
|
BLAKE2b-256 | 9f1329f07a87f0b1ac93f175287e03dad6120d55dacda376338f40714abfaad3 |
Close
Hashes for etcpak-0.9.11-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40b4ba97d8dc07d81e243397c9a68e798d09351ee0703e63355c45186641d87c |
|
MD5 | 04057e13556a70ecbeaf9b8727d6657f |
|
BLAKE2b-256 | adb85b76bf984948ce5d6cf47f11361e31b96e030e550f670469ffce13c4e863 |
Close
Hashes for etcpak-0.9.11-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6be16aab9a6ad0f1819d30c9f3d9f41f6e155a03fcf25d7f472d2f12352bb73b |
|
MD5 | 8d79c0a70cd13627c67ee9e50f8f5dd3 |
|
BLAKE2b-256 | 4959c12212dbd6a0d6defe10ac6b15e440c8f9c03e1e05b44d9ce653d598badb |
Close
Hashes for etcpak-0.9.11-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38048ffc9f15ac541ea58a4ecbf30bcb51d889ac67951e7b10fa87a0b7578c8e |
|
MD5 | 109e20dd80024a34d77ade5bbcad8e45 |
|
BLAKE2b-256 | 3a9a9100b7cf68826d754917702df0cdc47c784017ece0fb0c035a767439b11e |
Close
Hashes for etcpak-0.9.11-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32051f1d55b3470da10612dca4d4754d3796b9945aaa02ade50b67f72069cdee |
|
MD5 | 88fda07d6bb8c468ce71dbdf84342653 |
|
BLAKE2b-256 | 1dfbd7c6e4ff2e7a5bd63694d516a8e8c591d2b3f7fbca0f2596eb4b00949279 |
Close
Hashes for etcpak-0.9.11-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | acb6a36f82015b63daee81389aee5ad73b1fe30ebee5d3d76ea736d4a5dc3e4c |
|
MD5 | bfde5554e9f7733867b0182a2b78a05d |
|
BLAKE2b-256 | a13ee675a975c95bc9137b7e5dc8d34381741320447c860c7dae14e548ba3254 |
Close
Hashes for etcpak-0.9.11-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 093f48ce6e365d9cc043cb76288ec9bf09c8e026ec92ac63cccfe64b9587acfc |
|
MD5 | a551e12c4df08385345038cf4a285888 |
|
BLAKE2b-256 | a8e164361ff78d5759b104944a984c5c4496d19e10677ec15d1ee9dc24650f60 |