python wrapper for etcpak
Project description
etcpak
[](https://github.com/K0lb3/etcpak/actions?query=workflow Build & Publish wheels)
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.12.tar.gz
(444.9 kB
view hashes)
Built Distributions
etcpak-0.9.12-cp313-cp313-win32.whl
(696.3 kB
view hashes)
etcpak-0.9.12-cp312-cp312-win32.whl
(696.4 kB
view hashes)
etcpak-0.9.12-cp311-cp311-win32.whl
(696.2 kB
view hashes)
etcpak-0.9.12-cp310-cp310-win32.whl
(696.0 kB
view hashes)
etcpak-0.9.12-cp39-cp39-win_amd64.whl
(853.8 kB
view hashes)
etcpak-0.9.12-cp39-cp39-win32.whl
(695.8 kB
view hashes)
etcpak-0.9.12-cp38-cp38-win_amd64.whl
(853.5 kB
view hashes)
etcpak-0.9.12-cp38-cp38-win32.whl
(695.4 kB
view hashes)
etcpak-0.9.12-cp37-cp37m-win32.whl
(695.2 kB
view hashes)
Close
Hashes for etcpak-0.9.12-cp313-cp313-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a7f19f44aa0fbdbb25c68fb2f1ddd7045199ef6561bb302d02b61d1af78780d |
|
MD5 | eb54ff2cf75555e9bcf2d93d3dc9ebbc |
|
BLAKE2b-256 | 23aa84767f163781d34cbc7d27840cd3a0633e7c26aa07e8f5d90ee1c3fbf2cc |
Close
Hashes for etcpak-0.9.12-cp313-cp313-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6cccee5fc7903da0ad233e277dfc11de12b769c2328ae52af2f1d7f515935aec |
|
MD5 | b77ae7ef6cdc3e2a5bd883bf86607bf8 |
|
BLAKE2b-256 | cfc8697eff557981d6a5546d9dd6872e0295c4ee24c262090ed3268a6dac6e02 |
Close
Hashes for etcpak-0.9.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0c26203583931204ecf5fc850c95425aa319486253326bceb8af0a258cda891 |
|
MD5 | 57374bd7df68d5c33438e465488cd203 |
|
BLAKE2b-256 | 69f298833a9edb33479ba983b885735791b28fe9a7532331081d31e2b59fe099 |
Close
Hashes for etcpak-0.9.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bd3f5fb621c71221fab21d08868f360701b4ce8881693e8ae97dd71629d5fbd |
|
MD5 | 20a3e9f07c3b202fda5116863891457d |
|
BLAKE2b-256 | d94e9a6b0e6f21ac9a701c84167db38bcbd1c48f2dfad14993e77d20be28d25e |
Close
Hashes for etcpak-0.9.12-cp313-cp313-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b58f6e456c877b6b3385fd80dd77be13a4b5fda2b0c9453a05be9fd2cfff402c |
|
MD5 | f01e2d6a20ac3b16ac98624ef55c48dc |
|
BLAKE2b-256 | e33c1981b3abca7c9965381d49ba25fe6105e5ceea7456ac0832cb460dffab66 |
Close
Hashes for etcpak-0.9.12-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8dfc1c556f995f226c77ede3d4145a0fba9dc463016b85d79aeac2e7927f098 |
|
MD5 | 1e21ff3370ed62b1dc60610d9e029d97 |
|
BLAKE2b-256 | 9c5a0bbc0607a14452885da8a31cc70a62fc9bc2655a200d5b68cb24da4eb250 |
Close
Hashes for etcpak-0.9.12-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b38c02dbd70bd99c4fc250aaa99ad977340ea2c558790bdd4b3065b275880041 |
|
MD5 | 742cf2e146bfb37a4d93c56ccd9e00f8 |
|
BLAKE2b-256 | 27acb468c7afe01d87c6257b5c6a3c20ce0b124fb2aada0ac5c15d2af3ca7f08 |
Close
Hashes for etcpak-0.9.12-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 675a90202b4a9ebb5f3ec806a15c57420c3fb1fa0c83f6e0fd09691c32b09004 |
|
MD5 | 12487cf13e7a4b571ed9b29f7190ba4e |
|
BLAKE2b-256 | b40da96a33fa038b73347a3a81270d1033a02b5a43152a22b5279a4065380d28 |
Close
Hashes for etcpak-0.9.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5121ce69d41f7615e49ed83564c45d45e582afdab34c0a0d599828ebdac3b8c4 |
|
MD5 | d67c70b2f3c6a295b515abbac3eb0c10 |
|
BLAKE2b-256 | 6c59e8dd6d7c1ef2230e7bf58aa6af104f637012d4c56627b38e63a5f958ef3d |
Close
Hashes for etcpak-0.9.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8d8a0c44f41bacde9b4d58b6684234673d37ec7bda876b6038b3c863c9a4afb |
|
MD5 | 96562615041c09d45fc286e7f3b5d201 |
|
BLAKE2b-256 | 3aac80b62298ee8bd966ed21034ead41042e30b0bd33284fd72da27d24ebcdf7 |
Close
Hashes for etcpak-0.9.12-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d19be9755f9ec860439f755820913dddfe01176ca270a1b179eef7797c91d681 |
|
MD5 | 1269765f029e918aa496ec0d635648f6 |
|
BLAKE2b-256 | d8510c5b8529bc4949ea5ddaa256083ad1c247128b2fc956a4f2a7720efd4453 |
Close
Hashes for etcpak-0.9.12-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d50d98379e0f4c5a3b47e6413e255c54d5cc35a5232aca804dba7eee806115b |
|
MD5 | b167943745e863302b4f267d34cfb0b7 |
|
BLAKE2b-256 | 0cee23dd6443baea907eec1d577342ddf0eb1bf92dcbdf0dd84fea69a97d5743 |
Close
Hashes for etcpak-0.9.12-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83cf8e99cb61eccd421608704e9022646ffe897554e3467a26032bc36b90f66a |
|
MD5 | fe714c34ade0d9fe1bb2c892f060228a |
|
BLAKE2b-256 | 6eb010f6d78838e53b288b5b1c380eaf6c01ebe2198aef463e4747bd47f45390 |
Close
Hashes for etcpak-0.9.12-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1c9aa17f0b0451cf5c2489390d8883ee38ef9ff9fdc305e7fcb5032477d5c9e |
|
MD5 | 7ccf5bfa13d29e545032055470b19262 |
|
BLAKE2b-256 | 6bf172433f181b44dcef615c1aa59bf55403b9c789c7a5e8c7f71ccfe317f388 |
Close
Hashes for etcpak-0.9.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2db40cc1213ca26d05d618beaef88eb2d1bcfdafb9f95dd63dbe0052090db605 |
|
MD5 | eb3d55ba327be0781494dca514d1286d |
|
BLAKE2b-256 | 3595bd75472dfe3097ed8cf3187cefd9bd310f183c2c925f374427249372c0c3 |
Close
Hashes for etcpak-0.9.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e60d9dad1330718108ebbbc59f285d1373a91b24d0b2dcbdda0b34ca95af181 |
|
MD5 | de711b6ff5adad8d5d83f0f6120cbeb3 |
|
BLAKE2b-256 | 7c86d1fdf623b3ad26457a8409ec4a50beca04aa2034990e60c537ee6b717b9e |
Close
Hashes for etcpak-0.9.12-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08b542e8dd619e359f192582519bfc8a664cddc5187add2abde1116ea226882a |
|
MD5 | fec561b1a6d2037b4588cd50d6e3c60e |
|
BLAKE2b-256 | abc5c548e92d0e87f64bcb232139eda6b097d2fc87a8c76084bf08a7579d5e8a |
Close
Hashes for etcpak-0.9.12-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9707ab299594d484bb5fc9d71a79279ea49af873a65646bd9955a1e1fd7bd591 |
|
MD5 | f08623bd5720f38ebb16026a09aa22a7 |
|
BLAKE2b-256 | 8c441c3683b1c3651ea7d55f96f52c14af085aed49a407279ae07617e03b9fe3 |
Close
Hashes for etcpak-0.9.12-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1ef223d1f54159cb3e6438dfdea3823ed6e391d6ebc8334d96cfb44f4e7291d |
|
MD5 | 3a4d87b90b1e0736bd15316b4c47eb78 |
|
BLAKE2b-256 | 852789893303998a1c4eedd665def715debdca8d33b29ee4e17a8beaac88c78b |
Close
Hashes for etcpak-0.9.12-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9408df3ffd468d320fb44c1da17d9518f8383f3d5af19b85758b31b0d993f8fa |
|
MD5 | c5f8c3b2ea759afdd1cdc0243da6451c |
|
BLAKE2b-256 | 25dca91574fc50ca36df7eaa1646aef2bcb11e5b130fa3b9e8834159aa31214c |
Close
Hashes for etcpak-0.9.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13fbc10a204eb72da7a70820103b352e868ffc4460929707c20cd450785283f5 |
|
MD5 | 495e203ab501bc2a580573f447b018f4 |
|
BLAKE2b-256 | db9db832295d91d827a97f6eaef8e67501838a1135c86c702e2c381cd24c8211 |
Close
Hashes for etcpak-0.9.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 621786155b79c31cf0cb0b8998803880042af33631aab09f0b103b590bc6e027 |
|
MD5 | cdca4953a639b16f1ad5d1365108741a |
|
BLAKE2b-256 | e267d470c5b006bfb0283a62f19bbb498c0a2d375ad9cfbe794fa85e289461d8 |
Close
Hashes for etcpak-0.9.12-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b844c77b1c26eb885a0062f5792f8f033601b8baf2db9ab7534593b5fef86d6a |
|
MD5 | 21a78a8b27304a672076a6372d22fda9 |
|
BLAKE2b-256 | a478550e19e2bc780ca1ea0b733fd8cfa25b2139e2c10459981fb7f617020e08 |
Close
Hashes for etcpak-0.9.12-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b920f299958e891370cece488c042a35f30f341463634eb0fade26a30d34760 |
|
MD5 | 62393021be40fa0343f446086409e4ac |
|
BLAKE2b-256 | e1a3297a39c3b22258d914872df334397a52afc6d81ba8d43d96be334cd61ad9 |
Close
Hashes for etcpak-0.9.12-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67553d34088e49a509d049709af3a0535fa57aeb2b9ba4328e19f3749b2247e0 |
|
MD5 | 72c31eb0d8d129ac9de08065ce21ab35 |
|
BLAKE2b-256 | 15f6606461a673573d39966c59a71cafd586c2ae7898bece2b5dbceffa01dc06 |
Close
Hashes for etcpak-0.9.12-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9609757ae7db54c91f5163989e3ccd7c4ba8289a318714b8ca9032a8f0944a84 |
|
MD5 | 0fad9f0de53869a92af75a7f16e04f2a |
|
BLAKE2b-256 | d6d23aaf48ec112004be447afda0c8d3ebd351bd33f550677cfbfe7c9d5113e3 |
Close
Hashes for etcpak-0.9.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 236b0f6adf715a164bcd73515f544c00324c36f802f0f9c091a2ef2c273b5e83 |
|
MD5 | d4c9d4252c23f146bf89874965b0b38b |
|
BLAKE2b-256 | 9c0a91c50273d058581c1e93fe721600f158d875cdd9ca3a53133d642ab8da2a |
Close
Hashes for etcpak-0.9.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d202c05e0bb7487e6ecb9c60c4bde6ac956125df0ff350478f67aefea570df38 |
|
MD5 | c080523473cc548c28ffa617ad3cda87 |
|
BLAKE2b-256 | 9086972b8cb32efe870ffbb691570b88a36abdf9b036b49c4b2e2f83568f756f |
Close
Hashes for etcpak-0.9.12-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 231219a7ca4584e7f625f193fcf92ee7f901331c5306f4835daac0e297625e14 |
|
MD5 | ba2da84f90982c2c09e6be10966908f6 |
|
BLAKE2b-256 | 22bfd1c4431671835812f82fe2731139ce41ac373ae2b87bb84b16ffce6cb43c |
Close
Hashes for etcpak-0.9.12-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 333eb76652c2f1492e1aa4782ad98eda758ed08ba3d687e6755645b61e77768a |
|
MD5 | 3f30aaf5cfba39b5d0731d1ba4caede7 |
|
BLAKE2b-256 | a085409a68c7ba1b9ab1751480439e0927d60c414be43e12c5fa69a34e4e2910 |
Close
Hashes for etcpak-0.9.12-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb3c4f7a0ecfe1b894658f34acf95d20e230a796dfacf1cb8fa5a8b882e9a3e5 |
|
MD5 | 4048524b48c334763e306adc70bda99c |
|
BLAKE2b-256 | 6ce2ad55c1abc2da2cb97ef387bb4919697afa73e087a79037186496fdc9918b |
Close
Hashes for etcpak-0.9.12-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80d11dbc0446d14b7828e4a9a39f47ac0bfefe58629bcd0e7d4982fb37f72f02 |
|
MD5 | eea6ac8906f3f5e1b8eafaaedd59e949 |
|
BLAKE2b-256 | e7aedd466aa921c92304d4e0ece389c2f9c5fd9d386177944be736e55adaa488 |
Close
Hashes for etcpak-0.9.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8eb9355957f78877ad822ad68cdefac865ae51a03795d1906ead69049d17552d |
|
MD5 | 317b74a261872926c1856aec518a14eb |
|
BLAKE2b-256 | 2cf3013d379c79e5c23898d6317beb5beb8f016a8c559b41827bfc432b69c286 |
Close
Hashes for etcpak-0.9.12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5ec2d1b61073d4d83ac9591524ca91bba063072d0c640ff6cb0e5a33c364cbc |
|
MD5 | fc2fb93ad084c5c1cd15e616323e3f79 |
|
BLAKE2b-256 | d236094ef47ee37ace5629065c0eb4c01bd64a86e976529e7eb32a6bad287569 |
Close
Hashes for etcpak-0.9.12-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 473713b77a355d14cbcea461f4a407f9eb0921987839b12fa1e7f263fed9fc60 |
|
MD5 | 84444a6e3e6ac3cdb59a3f595f4c9971 |
|
BLAKE2b-256 | 51e32e8e6f992597fce0ea4819d16c884da11c2b5415583755649c8d093a9a73 |
Close
Hashes for etcpak-0.9.12-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ede4bc84ea7f75b2f201a2033a2ed1f3844e103c12018d0246618f0f6a108d34 |
|
MD5 | 13f143a08de8448f33f559be9197d26e |
|
BLAKE2b-256 | 221a2c4a0c0e85c439dc415307d4fe0404335860973b13a2bcff6e3714dbd166 |
Close
Hashes for etcpak-0.9.12-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d605bec61ab50f0edf8ce079c23633945cba16398b00c248e7602589c10467b6 |
|
MD5 | 095fb8fdf6ae21e8f662fb7da667c244 |
|
BLAKE2b-256 | ccff706093b133371cd40eca12e0bdb2537ce3122efc8d260df0b9254e91e799 |
Close
Hashes for etcpak-0.9.12-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb8e916d3465cc3d72307df4e63c68e23b945944f3d408bbcffa211a0fa8d667 |
|
MD5 | 8a8c4c343c2df053f10db05b4cd439fa |
|
BLAKE2b-256 | 46aa891c1ce96d4bf8cf79ec95bcccb9608cbc50d19bb9100c42e82b623145a9 |
Close
Hashes for etcpak-0.9.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1aee20d203e07ca8831df3041c53170c97bc80c548bb8c7eb53bbfaf24f4f0be |
|
MD5 | 460f246456206f7d57ba94a8a1d702ef |
|
BLAKE2b-256 | ccd77b26fe689461c9b1fb89064123af5370e220a4d49bddb65e616a99d50f0c |
Close
Hashes for etcpak-0.9.12-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4d9d22e81f9345dc4e7b8d893c4f1b1a4ef9fc90b36a716a3285e838fb913fe |
|
MD5 | 8aba8e672e434c84a75fd33dda43ff39 |
|
BLAKE2b-256 | c7a9454d4958631e1cbe8369babd11fb471a7269d89dc2c725eaf1b79ca4432b |
Close
Hashes for etcpak-0.9.12-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c77ce885f3e817e2ac1a8d2cd053b44bb6c4e5ce653414095b3ef7d1ffc6d142 |
|
MD5 | 3e7b59c60c8fbe27bb028b32a5563856 |
|
BLAKE2b-256 | 3174fdea5e2b47b64dfade0e2578bbfb63e3bed9f9fa6198827042878676a36c |