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.9.tar.gz
(101.3 kB
view hashes)
Built Distributions
etcpak-0.9.9-cp313-cp313-win32.whl
(346.1 kB
view hashes)
etcpak-0.9.9-cp312-cp312-win32.whl
(346.1 kB
view hashes)
etcpak-0.9.9-cp311-cp311-win32.whl
(346.1 kB
view hashes)
etcpak-0.9.9-cp310-cp310-win32.whl
(345.9 kB
view hashes)
etcpak-0.9.9-cp39-cp39-win_amd64.whl
(424.3 kB
view hashes)
etcpak-0.9.9-cp39-cp39-win32.whl
(345.8 kB
view hashes)
etcpak-0.9.9-cp38-cp38-win_amd64.whl
(424.1 kB
view hashes)
etcpak-0.9.9-cp38-cp38-win32.whl
(345.6 kB
view hashes)
etcpak-0.9.9-cp37-cp37m-win_amd64.whl
(424.0 kB
view hashes)
etcpak-0.9.9-cp37-cp37m-win32.whl
(345.5 kB
view hashes)
Close
Hashes for etcpak-0.9.9-cp313-cp313-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ce6fa41e88ef94a63ddb0af4bdbdd58c15f1dfaa2c1503cf6e3b9c56021b122 |
|
MD5 | 2bce33faba4a145b8fdd7e1dcefbde71 |
|
BLAKE2b-256 | b324e883fa02fc2ecc0c891558f36e27e750a88143b853b632851097bf3c9960 |
Close
Hashes for etcpak-0.9.9-cp313-cp313-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df733e55b7dfbf0b9402dafc63cfec75cd20a6f81f097c354fce7afb3138e30e |
|
MD5 | 3d066f8788a3a5e608511857182df8ee |
|
BLAKE2b-256 | e173222c19344e4fbfae9c19eb259eb221f73dd8fd28744603400780eb3481d5 |
Close
Hashes for etcpak-0.9.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 079aae3f321b644c3259d1e470988185b750937263917c97c7a1cd8138173aa6 |
|
MD5 | 178f5dceb4689c538c06f676a9ba0d00 |
|
BLAKE2b-256 | 627799deb587c82e777f436fba7d9b96e094ed3072e298a842aa990c4dcde7b9 |
Close
Hashes for etcpak-0.9.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3317dc14bc64cee3c147b9c1a329a527f7cb98ce595729659a11a361406c0287 |
|
MD5 | b8a0ac51686851fe328f31c230c9909d |
|
BLAKE2b-256 | 1a6a2e3b57f23265521a5e67a66a54ac37420df9231f11898113367240476e70 |
Close
Hashes for etcpak-0.9.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6caa145c7888560d202c100eb4122ab13f5d3881800cc0e54885b192df78d4fd |
|
MD5 | dda7ce13f67c4c0f24ee5c5b39c04929 |
|
BLAKE2b-256 | d6de1161336021b84d5822a3c1a499bc5cae10fc91182168e1b84f9be3997e11 |
Close
Hashes for etcpak-0.9.9-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8199a7bdb75fcc7ff5b25b342a0e7822541a85dae05e8327ba18aa1eb5b2a1aa |
|
MD5 | 0f46a786aa123db6de4f737394c1fc9e |
|
BLAKE2b-256 | 97ba16fecc107fe303e5fbedafd7c3890af9120eb2cfa1fe5c91ee70ad781b84 |
Close
Hashes for etcpak-0.9.9-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3dd3eb4d06fa3df24a77539fde3b321fa2f2246cd98fdd789ee8215b1c259069 |
|
MD5 | 5de27e4ae134a93a4c514ca7d0fb075a |
|
BLAKE2b-256 | 37933649d979471005745614d0ed1210cbdeb8c9e357f12fb53cd991dd1711d2 |
Close
Hashes for etcpak-0.9.9-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6a0829733a725715faacd313093ee006d3d73cef646b57485d70e7a60dcd7a6 |
|
MD5 | 55c012a16c1c98fb3c0c9441f274f923 |
|
BLAKE2b-256 | 0e6e3acd061d64e272ca6b2269ab09cdcecd40fd84be7ba9b3f1cd57b96d3286 |
Close
Hashes for etcpak-0.9.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b0f2b7af39f29f13e2622440e865614aef37428420eef2c23b3d25566e4c51f |
|
MD5 | 84423799e8f70412f340f192cd6c3088 |
|
BLAKE2b-256 | e935b3106e19040aeffff8e798f78cf5175e35277b695934a55678cfa32e5c4a |
Close
Hashes for etcpak-0.9.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13106b05864d1925eb80c60cda93dde63f391eeeb7d51c1f769509d6196a2f0e |
|
MD5 | 66bcdae20219337d84e1c26b8faf3189 |
|
BLAKE2b-256 | 5d81b68494f82c1cdfbec7e59df8f46c6c44b8778156c61616292d5dd8d90c9c |
Close
Hashes for etcpak-0.9.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 898294ba7f02d465b06395258d9412c8e6cf8876cab12713cfe4d1d5c7bb4f63 |
|
MD5 | 990a4da2ff5cbbdc8427790f3a8e16f0 |
|
BLAKE2b-256 | cb9cd5cfc8361e2cdfa9adcb9b7223ea80505be3044b7f56fcfd1271107d733a |
Close
Hashes for etcpak-0.9.9-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79d25d8083ef5d9cb4c5afd0bf14b005a5f949f01d7775b965a90a9e354e8aed |
|
MD5 | 78254a53391a2c4724f0fa14b49a8c1c |
|
BLAKE2b-256 | e147fb15b0ba23b387031343e27c8355dc59eb0ff8ac68bb68147b54b0ba45c1 |
Close
Hashes for etcpak-0.9.9-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6552dd369b8ec643318fa97db25ab5f6c16dcf056bf861d9256e31052b6e2ba |
|
MD5 | 5091db990ee342d2e3cb29a4f0762356 |
|
BLAKE2b-256 | edffe4999911082de8ada44e8a7b8f0f428300f3aa73875aaacfc4b6cb07dd88 |
Close
Hashes for etcpak-0.9.9-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a32031cf4833d063b73e1a7cfc995b170841292d4e1db782704ee55ee72c3412 |
|
MD5 | e7919485c897bee03a080ebc64b15bc4 |
|
BLAKE2b-256 | a6867399e070f3ffcf945cc7fa754ab35960f5b1d0af9879560fa4e1d6190fca |
Close
Hashes for etcpak-0.9.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be3ace8d2b5f1e0049cba973403bdfadf06551baec044e7f13eeabf1d60e2cd7 |
|
MD5 | 866384a0be4f77718a7f13539bc14c58 |
|
BLAKE2b-256 | b0cf6dc2e9b9748811b2d957c22e26ee0de072882e283526f3f942ef03605875 |
Close
Hashes for etcpak-0.9.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c30f89500011296471d75c2b9dd51f28ea44f637f096a2b68b27e33bc939c67 |
|
MD5 | 4256d3aea665647fcf9c4ca5243bb19c |
|
BLAKE2b-256 | 5408155a9acd3e1db9429ecfe0dd673c7820e8d12838e3b0ebb46bcf8abfd019 |
Close
Hashes for etcpak-0.9.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e552231aaa31b05ecd44426edff5729593444de1297d4c200984cd66c4ef7383 |
|
MD5 | e67dd57e2fb0fad8493ec7550666a38d |
|
BLAKE2b-256 | fe432f0cb3edb5c68d35a44b4ce9b3cc337055be1e4f898658525d32519d6088 |
Close
Hashes for etcpak-0.9.9-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f28a8c86780722de01df8d3d7c86ed2e0b7a3d0a055d06a8c04380b268826a8 |
|
MD5 | 68798b2273ef9b180a2306a6f52bda2a |
|
BLAKE2b-256 | f7f327fdb19732d86c6c6aa133474065a6c4af9b07b0d7f5a9262b269ddea3d8 |
Close
Hashes for etcpak-0.9.9-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 571ade8d5b49b79ae1ae0f73ab01785f508166da2a8e9ce7b7c2b39eb43ce8b9 |
|
MD5 | 9e8c35b6fef51c7374c7375d189dbec6 |
|
BLAKE2b-256 | fe38749a55cd7ee2cb264bcd7ff6b5839440ef0b880e5d9752531020f05becaa |
Close
Hashes for etcpak-0.9.9-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a653b6118e7d4d29232252acda04c6720966b387dc35e15c8afcde07a4beb49 |
|
MD5 | ace77b0563ccb3f63374e9f572f73e72 |
|
BLAKE2b-256 | 74331e51f11aff4ac5fdda55e2a0d7ee4a6aac8dbf798da55d6ba1bee71a55f4 |
Close
Hashes for etcpak-0.9.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea2b8d354a70223a1aae649588ff084d3b9339468a1b6e800bb49cec0230675d |
|
MD5 | 51bce1c17c03a7520d9f6afe097bec4e |
|
BLAKE2b-256 | 4847696a444636eb358c57688a820111d69df11f8d5685f7c6e72ecfb5b40e12 |
Close
Hashes for etcpak-0.9.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c44fa95072567d8d32e6cf12a0fd8f60bd45b8b7b46d2123794e3a0bf7af7f3 |
|
MD5 | 9d2eaed499541ab90fece87e52fef399 |
|
BLAKE2b-256 | 06dbbc7f79ffe7307070e104546d5c7b570c2d21d5b9772a02bff36a665aca0a |
Close
Hashes for etcpak-0.9.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0c9ba79f26622c56aae13484453c7eda7dd55ed1f34e75991e023097c8d0a8b |
|
MD5 | 686ae2f419665b2bceabe613635e7a1f |
|
BLAKE2b-256 | 4934b2d1c9caa2c58ee4974504f3825247a66b364c529c14572241e36a56fb27 |
Close
Hashes for etcpak-0.9.9-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e22f786fba8d7cc7641dc460b7aadcbc4af43e2137beb7c1c1b0382885e76faf |
|
MD5 | 44c14cf32e7616f56a8e50ff930c6b4b |
|
BLAKE2b-256 | ea8ce6900ac551f49e59bbecdfce5361b0fa645ef8d9faaadbbcfe81b501ad74 |
Close
Hashes for etcpak-0.9.9-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0aaae839b226e03a96c8f4410b3a197745dac61a1351111667202be24256ad2a |
|
MD5 | e1edfec78a2c69269ae0dfd5ac79e489 |
|
BLAKE2b-256 | ba165c24c2b4c36e0a4bd7ea512985a4577c85b3986b622a98c5e4084075bf68 |
Close
Hashes for etcpak-0.9.9-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f0f2a3cccce88d2f8122544884ae4977b12c469f3e0354da544ef541aa69ba6 |
|
MD5 | 6ba2907b15a596b9587e3b338b45e8a7 |
|
BLAKE2b-256 | 0b5d031903beebdc83486a606b432986c29a33467bc09bad27c9a8480d2d38b7 |
Close
Hashes for etcpak-0.9.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1d57a8206553189aa04809c4e493c742159cc600c5180679b03ef2a2eaaeeb8 |
|
MD5 | 6453395047ce498133e82783421d6e2a |
|
BLAKE2b-256 | 86b8a16e0bf265dfe6de4d4fd52cdad59459b3ff3402d26258fb341cfc2079e1 |
Close
Hashes for etcpak-0.9.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5e653ba544aa2d0d09ba2fb0301377af151bf7cfe971cdd7b05f4436b4c1dd8 |
|
MD5 | 6b9efc59ca2c737627172c3e30e91366 |
|
BLAKE2b-256 | 8dad001243f7b791fa2178ea7698c1cc06f18d7e24c0314d5fdcd3865b35928f |
Close
Hashes for etcpak-0.9.9-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78c82c5286212ace66348bdd6c26b71cb4194527e65042c3307cef69d0706da5 |
|
MD5 | 5d3b9dcb86ac7dc0e33996dbf8b9c3e9 |
|
BLAKE2b-256 | e34ee9cd8f7479f1d487e690d448741360a4ba0e5b8b014dfac9b2e399e22c9a |
Close
Hashes for etcpak-0.9.9-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6395ecbd177d80d3a24378491f4f4d02b19ca7f96c7f67bc8973a91df686e5b6 |
|
MD5 | d8ab96dadaf1a9a98127bf3fb6fa0ecd |
|
BLAKE2b-256 | a8a1cd676126b60bd62c7668b3e7a66cfbb075ce70c268c1f514c1858793f6b3 |
Close
Hashes for etcpak-0.9.9-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c02e2c3428f584a73c375e0e06ecefa96ecc32a9c8db034f5c49015638dd77e4 |
|
MD5 | d9b212e234072d63bd6b37361672dafd |
|
BLAKE2b-256 | cc17f94e7372fe83c59587bffaace46f4b5429a50d45d4b70d595ca6775ab6ed |
Close
Hashes for etcpak-0.9.9-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f28f31067ccfd521cf674bd6613d9aafab0d531c1eceb094c92c8d29e473c2b7 |
|
MD5 | f8da257c90f5fdad61842dab91e01d1f |
|
BLAKE2b-256 | 13e13fdf56e7391a062f1e39f3aadb2c09ef6e680919e5301a63c4e13abb6bea |
Close
Hashes for etcpak-0.9.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b646158ddc5ea46b737d4087460ddafb150064f39762c231fb6a72bb162e40de |
|
MD5 | 0055fb659a7292280705d78d14f517fb |
|
BLAKE2b-256 | df929c964d07dcde2b7c8ba52f47094d438d6e669bac37e192827820d695eb17 |
Close
Hashes for etcpak-0.9.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3bc12dfc442a3003589f38abecb8e1fdbbe6be0e1e7a0164f21b41b49bb9c12 |
|
MD5 | 6d3bd802c83c21a159076aa023bb157a |
|
BLAKE2b-256 | 382ab101224d2bbddfecd03b58ef4534b10363212f0647d249398537f36ae424 |
Close
Hashes for etcpak-0.9.9-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a166f05d09563b56607f1f7e52aaca5b182a54126ef804fa3514788ffdadd11f |
|
MD5 | 7fb0519c326ade7f1cb6ee1b95fa82e5 |
|
BLAKE2b-256 | 60e1711b3f05e5c266546d8a30bfd3e04803eebd62536e5e3bc288c62e80605d |
Close
Hashes for etcpak-0.9.9-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea1a1ddf8b49b5c100526249134294a66df1f068a9b6bdcbdbedbda07563e0e4 |
|
MD5 | 1f798172ad683f6f7ef436edcbc76638 |
|
BLAKE2b-256 | 698d5205ec1029caa6925d6199a8633c7864a28bf6c922269ad44dd30cfdfb53 |
Close
Hashes for etcpak-0.9.9-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7d2d0783398a61a9a7450d472977f8a5e7fd6919ca804831212d178ac71646d |
|
MD5 | 17003b15d874eb753b4ccd6b157db5a1 |
|
BLAKE2b-256 | 19ce1c4b0dcdbd3308cd8534b39d9ba696aafbda38376cc3dc0eaa1bb5b2681f |
Close
Hashes for etcpak-0.9.9-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 165723f1ceeb9daa2981b21073a0e21991617318b1b733e384f973444dcf1cb6 |
|
MD5 | c824203a1786904b10505093b728067c |
|
BLAKE2b-256 | a5293c9fedacb068939249cd99fc6487e2ba13e5cc4d5fbafa82f070459b1670 |
Close
Hashes for etcpak-0.9.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76490bcf1c426e5296edbd5388c9e69802099f27f15743ad870e5f310a337c5c |
|
MD5 | c087a96caed0e2923eb89f18d9ba01bb |
|
BLAKE2b-256 | b14c0b55042c0486f3b7e644a94d5203bd3d5acf903565fc8c7e1254a11dae85 |
Close
Hashes for etcpak-0.9.9-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba9d1bbc1a50898849f8251f4166b29b4003801847d10219229028104a1bd571 |
|
MD5 | 4cb9327a80fe9c20dd4cb12e1cadabe3 |
|
BLAKE2b-256 | 1bf886b552d287cf7756c1d1b89c4d5577b8834642f34ee83e39088bfe7df493 |
Close
Hashes for etcpak-0.9.9-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9397885715e6b2127ec8c775bf7d5e2353f15b31cf3869e35cc7b1b0ee4d9cfc |
|
MD5 | e7d9d6dad0e516ff00e6f5ed9d6fd52d |
|
BLAKE2b-256 | 0cc6f9aaae04a09dc9815958527fcce490b07f558e72193c502bba3e393bad6e |