Python wrapper for multithreaded .png image file optimizer oxipng
Project description
pyoxipng
Python wrapper for multithreaded .png image file optimizer
oxipng (written in Rust). Use
pyoxipng
to reduce the file size of your PNG images.
Jump to a section
Installation
Install from PyPI:
pip install pyoxipng
Import in your Python code:
import oxipng
Usage
To optimize an existing file on disk:
oxipng.optimize("/path/to/image.png", "/path/to/image-optimized.png")
Second argument is optional; if not provided, will overwrite the existing file.
To optimize a file already-loaded in Python as a bytes
object:
data = ... # bytes of png data
optimized_data = oxipng.optimize_from_memory(data)
# Save the result
with open("/path/to/image-optimized.png", "wb") as f:
f.write(optimized_data)
Both functions raise oxipng.PngError
if the optimization cannot be completed.
Options
Both the optimize
and optimize_from_memory
functions accept the following
options as keyword arguments.
Example usage:
oxipng.optimize("/path/to/image.png", level=6, backup=True, interlace=1)
Option | Description | Type | Default |
---|---|---|---|
level |
Set the optimization level to an integer between 0 and 6 (inclusive) | int |
2 |
backup |
Whether the input file should be backed up before writing the output | bool |
False |
fix_errors |
Attempt to fix errors when decoding the input file rather than throwing PngError |
bool |
False |
check |
Don't actually run any optimizations, just parse the PNG file | bool |
False |
pretend |
Don't actually write any output file, just calculate the best results | bool |
False |
force |
Write to output even if there was no improvement in compression | bool |
False |
preserve_attrs |
Ensure the output file has the same permissions as the input file | bool |
False |
filter |
Which filters to try on the file. Use Use enum values from oxipng.RowFilter |
set=[RowFilter.NoOp] |
{RowFilter.NoOp} |
interlace |
Whether to change the interlacing type of the file. None will not change current interlacing type |
Interlacing | None |
None |
optimize_alpha |
Whether to allow transparent pixels to be altered to improve compression | bool |
False |
bit_depth_reduction |
Whether to attempt bit depth reduction | bool |
True |
color_type_reduction |
Whether to attempt color type reduction | bool |
True |
palette_reduction |
Whether to attempt palette reduction | bool |
True |
grayscale_reduction |
Whether to attempt grayscale reduction | bool |
True |
idat_recoding |
If any type of reduction is performed, IDAT recoding will be performed regardless of this setting | bool |
True |
strip |
Which headers to strip from the PNG file, if any. Specify with oxipng.Headers |
Headers |
Headers.none() |
deflate |
Which DEFLATE algorithm to use. Specify with oxipng.Deflaters |
Deflaters |
Deflaters.libdeflater() |
use_heuristics |
Whether to use heuristics to pick the best filter and compression. Intended for use with level=1 |
bool |
False |
timeout |
Maximum amount of time to spend (in milliseconds) on optimizations. Further potential optimizations are skipped if the timeout is exceeded | int | None |
None |
filter
Initialize the filter
set with any of the following enum options:
oxipng.RowFilter.NoOp
oxipng.RowFilter.Sub
oxipng.RowFilter.Up
oxipng.RowFilter.Average
oxipng.RowFilter.Paeth
oxipng.RowFilter.Bigrams
oxipng.RowFilter.BigEnt
oxipng.RowFilter.Brute
interlace
Set interlace
to None
to keep existing interlacing or to one of following
enum options:
oxipng.Interlacing.Off
(interlace disabled)oxipng.Interlacing.Adam7
(interlace enabled)
strip
Initialize the strip
option with one of the following static methods in the
oxipng.Headers
class.
Method | Description |
---|---|
oxipng.Headers.none() |
None |
oxipng.Headers.strip(list[str]) |
Remove specific chunks |
oxipng.Headers.safe() |
Headers that won't affect rendering (all but cHRM, gAMA, iCCP, sBIT, sRGB, bKGD, hIST, pHYs, sPLT) |
oxipng.Headers.keep(set[str]) |
Remove all non-critical chunks except these |
oxipng.Headers.all() |
All non-critical headers |
deflate
Initialize the deflate
option with one of the following static methods in the
oxipng.Deflaters
class.
Method | Description |
---|---|
oxipng.Deflaters.libdeflater(int) |
Libdeflater with compression level [0-12] |
oxipng.Deflaters.zopfli(int) |
Zopfli with number of compression iterations to do [1-255]. |
Development
- Install Rust
- Install Python 3.8+
- Install Pipenv
- Clone this repository and navigate to it via command line
git clone https://github.com/nfrasser/pyoxipng.git cd pyoxipng
- Install dependencies
pipenv install --dev
- Activate the dev environment
pipenv shell
- Build
maturin develop
- Run tests
pytest
- Format code
black .
License
MIT
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
Built Distributions
Hashes for pyoxipng-8.0.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21e9d2cf585c9d29aaa30f26a003a3a59b9096540906a60cf52ae8046573fa67 |
|
MD5 | 1d9fdadc01ba911503c431579c120029 |
|
BLAKE2b-256 | f76eba447c81c8dbc0198a2a12a0625ed1b3d342fce7dd65875c83743d22abb1 |
Hashes for pyoxipng-8.0.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0725def3030d0ffb8d995b4c5375e879e700b96e078bed468aa550befd09309 |
|
MD5 | 4208741e1ebec625fc0b009d3f5da93e |
|
BLAKE2b-256 | 17982e2a591cf506998eb23d881237ef43d338fe76468cb33ca5524501452daf |
Hashes for pyoxipng-8.0.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb637ccd0a78cbee9a697eed011ecbd73271ea7cc8a1045bcc47c1e8d9b6e802 |
|
MD5 | 910c8f52f34a5b57743c029dc9863081 |
|
BLAKE2b-256 | 81f49f15b2c63c79dae549a58087cae883fdad1439b64ce41a12d724c0e0c4e7 |
Hashes for pyoxipng-8.0.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4271d35c38b6fb1d7f4b4510fd2b704ff5865013318b65c06a3432e5c7f6bb50 |
|
MD5 | fa9b8d5fe6283607738dd5339abddcb2 |
|
BLAKE2b-256 | 7298580a27d569bd4ea448085b43ed09e683f3cca9ab7397394bcd0634f3123f |
Hashes for pyoxipng-8.0.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1907745528fa8fce9b3ff6b7cc7c128496b3508eec0cad612aee0da2a81a9003 |
|
MD5 | 332f1c9b569825bd705e5f5fc55fefa4 |
|
BLAKE2b-256 | 1669361d0323012640071f65be8381e6d1e2fb3683b03d9d1165ea805061c060 |
Hashes for pyoxipng-8.0.1-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 674d1fc65d1b4f2705f995c5edd80c351b56d6ce711a5437ec313fc222d8e3cd |
|
MD5 | 357e03698de973ce30f82d0d4f0d1519 |
|
BLAKE2b-256 | 2356cff3fb732738d084aa700f7985f07b08ffef8a67b8b775db627fda2e3858 |
Hashes for pyoxipng-8.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a87af0a51ea19e62a68a71e809af6720fb4c2ea7aa21b65da915177aeaeba458 |
|
MD5 | f55c2a07c95318ea89ef76e56c6fcc7c |
|
BLAKE2b-256 | 9f0fe6fcc5145a3c95a335d6a4beb6b0ea3e29013f56da4954f7104b72abdcc0 |
Hashes for pyoxipng-8.0.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99df8ef194dbd3fdd07b323bde983e09bb2fd88bd34f3ecd0c534653b70f4ad2 |
|
MD5 | 4103b7e8460a2495b26b5a90a7b8f06f |
|
BLAKE2b-256 | feb40009a82843c8fe0ee808ef4e1457b1bc74db1fe74222e51d4168672668f7 |
Hashes for pyoxipng-8.0.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | daf04d03a9e9d481f335ee8a03d65836b29ec1fe485b428092230a955f7dfa1e |
|
MD5 | ff93d8e46b11a304a2909958e379ddb7 |
|
BLAKE2b-256 | 0a2b0e2c6c8777a98f3b9529168a901c72094a93d0f84e672fe6461f06923496 |
Hashes for pyoxipng-8.0.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0af338b108f4a978d6ee502bbb54a4393d8b8b5e36c70b3f0b9b4de86e73e69 |
|
MD5 | 449e448a23f55402999e7ade061a552d |
|
BLAKE2b-256 | 18a43d4f2162489598645c50bbe34ac5324b5c0994a27bb0e36c3bcc3b0fe3ad |
Hashes for pyoxipng-8.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27dfa6405b97f6258285409b70ea32f4823c44f341649ef03f0b311767119ecf |
|
MD5 | d311b2ed09857d1fb53ba64b6bac6aee |
|
BLAKE2b-256 | b3bfd468753943765a8ce6b85efca4f5ba396a801841a75d32880853dedb3055 |
Hashes for pyoxipng-8.0.1-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c9ed51c469bbf2f7b6550a2e6db2470f5b6ffbeede9d8dc2f976042e730a682 |
|
MD5 | ee84825687264482b8aa2687c6a8a920 |
|
BLAKE2b-256 | e5d9390084af79613387247831eb587cd627498ced1aaf70270e5874b4458c11 |
Hashes for pyoxipng-8.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cfa37a736a152d51df66bc245e5804d24df214186d176b85f22ae8b54f2f2790 |
|
MD5 | 74d72c184d435e397bd0bf1bc87a24bf |
|
BLAKE2b-256 | 3b52d4a131efc842b7cd6ce2acb902fc9e792d64a3c7e7d23b373f0cd94180f2 |
Hashes for pyoxipng-8.0.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e9270775788a50714c2638754277b8924cf32113b619d74c8f0b99763c34308 |
|
MD5 | fdcbf20c7d21254b6495f464f5e633fa |
|
BLAKE2b-256 | a5482609a48bf51f98b905a5b00602f9b0efb23f1d522c67d3fb191c459de427 |
Hashes for pyoxipng-8.0.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2498d9fb000522fcea53aa55e45813bb3a393c4871403aea5264ecc0687afb9e |
|
MD5 | 174f09138fb980a083ddd415a58848fd |
|
BLAKE2b-256 | ecf846c5184b27a3bde9474ea2fd399d47f0c68cdfd0e328b4958724b04d8560 |
Hashes for pyoxipng-8.0.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de575efa7d01cd9e71ef9a8f506aadd2cd3725cd5bd737f09fbc738987cffa91 |
|
MD5 | 875c81f6df06aa59c428721e2070219c |
|
BLAKE2b-256 | 5ff8f313825f5501a853a18a9e8eb993a271091a6e34f830c3840c2390d81680 |
Hashes for pyoxipng-8.0.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bb6486214e5588ba742007d6853bd8a79e41feb9d7f8d4f448b355ec01928ac |
|
MD5 | baceb91fad312b27190430f498620249 |
|
BLAKE2b-256 | 26df15e73c2bd52c6dfb4554f9a951ec6e41e437ddaeca0391380672bb18a070 |
Hashes for pyoxipng-8.0.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 965c4266efe3309bb5a3166fee9418a6b82c55f917dea33c553b13acb1f70654 |
|
MD5 | ef6f2a8c44e53a3dc3ec80efaf998b5f |
|
BLAKE2b-256 | eb9f8f5d7c9aa589c795ba662da57e1e2374dd22b12e73cb1913e5528d46f0a5 |
Hashes for pyoxipng-8.0.1-cp312-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ccd7b89138921b04cbe8776bfd7be1c878b2db36d002276bdb894668a065c64 |
|
MD5 | 32fb89cf9dd7415a80b889c6b0cdec98 |
|
BLAKE2b-256 | 59ac76721962e63d437956c9d2efd32efd3521b3b9352f5aa0abd509599b4b3c |
Hashes for pyoxipng-8.0.1-cp312-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cefd1a34e13e181fedecab81cc08d830600bd7f76320f13535f001ffe57b94b7 |
|
MD5 | 9f7254086255b16be4c8cdaee00e6fed |
|
BLAKE2b-256 | f6284c54af5fd36e72266604b279ae69a19d42d5d37d58c5a796d83580633e34 |
Hashes for pyoxipng-8.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd68615778ca46b12a01f4819d9f900e56ea76e61d3e47ca9fcebaf8f18f7dc4 |
|
MD5 | 7c47ed72a6bc3622ffada8961d436c89 |
|
BLAKE2b-256 | 4214777724b2955b7641375946ae2ed4d212c6a52f52d1f4ac3db20dbe97e912 |
Hashes for pyoxipng-8.0.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f23b7cd0a27a393e4e2bb4c8960516f22a34fe3c22efca4b81358129251c3ded |
|
MD5 | 0e8dadd2b39a327e8b9229002e9d9f09 |
|
BLAKE2b-256 | 23ebc962d8cdfd76f7925bea762b948789fd557781ab0055f83ba117be54bb02 |
Hashes for pyoxipng-8.0.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51cec1bc46b794dbfc7c915ce493a8e27f95efbb67d8008f99c3ab7adc0b4f58 |
|
MD5 | afbf4cd049ff40ac66fcaff8a38e692a |
|
BLAKE2b-256 | f6e41b145d9b696f4fbef070d4f6bc824476c43dd3c2cb6c1bdb189db3a65e49 |
Hashes for pyoxipng-8.0.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea8f3b96772a5a1fdc3a60d80fba3d617da346647db749ed6689a59ff70201d7 |
|
MD5 | cccb628b24c6e73f565b658591566f8f |
|
BLAKE2b-256 | 6bf2fa55d37fa8837c59a3606fb30f82bd2ea979781b3be06c72cad114067bc7 |
Hashes for pyoxipng-8.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47edd8356453e500ec34db140547e52e90ae144e2bac00e7de81f5b549f3d9ad |
|
MD5 | 0236e6a2e54955499f033edb9242b610 |
|
BLAKE2b-256 | 87088f31be16a085032b617a01ed2a7684e483ecd4c22e8d46556023c7c1aa6f |
Hashes for pyoxipng-8.0.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bd448aa4826f9fdebad5c47423d13831eded85dcffce047be3a912c6b7746b2 |
|
MD5 | 97f2c01806293d6e537ed317c45fd5ef |
|
BLAKE2b-256 | 1985d6c2a3460e8fdbf90497f8996fc66f6456032159f0fa9b47fd27b021032e |
Hashes for pyoxipng-8.0.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ef83595aa307e62179bfafe59fe09efe866bf87c82ee5f1a3831260ed85020d |
|
MD5 | 69d8271ec54b03cec07c79b373042289 |
|
BLAKE2b-256 | d46ee78964ce1b5f629955e66e5e2a5f377d821f1e321299c8c13d4d4841ea07 |
Hashes for pyoxipng-8.0.1-cp312-cp312-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da5090fb88df169a7b7b2796623bd4fb1e2397ce78ad48c0ee4224afd2003db4 |
|
MD5 | 655bccaf134ecd49d1d0832c648cba7f |
|
BLAKE2b-256 | 8ed0765fffd5c4802d160205f14eb2c4d9fffcb669b98080c0f1263813b73cc8 |
Hashes for pyoxipng-8.0.1-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa96dce5db67524ed0777e5b4cc437370a9eef5b2de0a8f98237b4be9a1e9098 |
|
MD5 | fed89fd694edc5b5126b3d8bc2e1e52b |
|
BLAKE2b-256 | 79117aef5853515975cb60465b3b84963a615648751a657275809008250e3632 |
Hashes for pyoxipng-8.0.1-cp311-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e7c6b2ecbf635463dfd9b80e4791b5f95fc5fe3229dcd903c647c09ed895658 |
|
MD5 | 7539b135dc843ec26d3602868d27cc69 |
|
BLAKE2b-256 | c0fcade0945d46ca27f460f630eb9b71a7392c33419399f13e40d692e93a779e |
Hashes for pyoxipng-8.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ede7a4071a911988d5a19480fb9a779dfdeba26bd6bc6d7f33cfb7e10ac03990 |
|
MD5 | 778b15fb64f76a19067796150942177a |
|
BLAKE2b-256 | debc94480f820daeaa0a199d0c695912e068c7d10c5493144fdedf230aa1e020 |
Hashes for pyoxipng-8.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 936b553454a2e1253e0a1b9f9da80abcf885a9547a274484cfe0d3455adc1199 |
|
MD5 | 988f910f55a17f734c015215abf3bc48 |
|
BLAKE2b-256 | 27add68f328d519ea7bb49ea7debc69809bc6d26803edb2d28ea404d869e0238 |
Hashes for pyoxipng-8.0.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4db1bf37084a40e8e950f1f8192744be1ae9fa831079a27cc1b3b194295f5f4 |
|
MD5 | c37ea8de2792da93d33099b748f6055a |
|
BLAKE2b-256 | 85660b598eb10c8b859967b75ec2b186f0ba9a8354f273cd6110f0a317a7456b |
Hashes for pyoxipng-8.0.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 199ddf7f9b75ee672c8370ea479639fe5fc143411952585244f171143766d21b |
|
MD5 | 5ebd4ba196bd7067b0e400167b0189f7 |
|
BLAKE2b-256 | 7fb0531923c046869ca3517813849cdcc00b98d516039af4bbada9bf1bbde39e |
Hashes for pyoxipng-8.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91394f8eadb084b19c65dd10a3e62cc98fb388c80d517a0be62a42945cdf983e |
|
MD5 | 12e6e2c9e15ee106151e940812bcf665 |
|
BLAKE2b-256 | ce12ef96a9019bb2fbb94ff6382bb7d989fe3308d7227fa846223481062a0185 |
Hashes for pyoxipng-8.0.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ff6105f8ea305e3139cb71d8b0d3df395c59d200c24f35bbafb1319812179d9 |
|
MD5 | 680611c2d2247597b51b669c0c4b6f35 |
|
BLAKE2b-256 | 59cc4e0542c3129f49062c46acd8ae470b5a3741809d34a702b83a534a2afee0 |
Hashes for pyoxipng-8.0.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73600b8675e065ef53d7f27dce846f76c9194cad584ae6d8e52dc1e231d06b29 |
|
MD5 | ae79847907b225042d3ca31cda80a719 |
|
BLAKE2b-256 | be2908dea19279fe5a139cbc1ebd65c3b9096f706798e436827f0553739b1971 |
Hashes for pyoxipng-8.0.1-cp311-cp311-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 213b3f913417afb0f0ddf6130fdcc0e92ffbce1367aaee1d869d0ba736e5aab1 |
|
MD5 | d013378b758cf09ed5749a00bbcaafff |
|
BLAKE2b-256 | d1f897a5d1ec2327a533bd5c868dacd49aa485f170ee9613a7152866ba95b3fa |
Hashes for pyoxipng-8.0.1-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e62b885a19f320fa310cf66b8215c3e05b10f997b3a573b4b48c759ad5883eeb |
|
MD5 | 56ae6bd41dc07cd8ebadd34cc1aa2dfa |
|
BLAKE2b-256 | 158d79f71891ea0d1625824c23b02f250c7c6492e0884e8c15b7e565c554a10d |
Hashes for pyoxipng-8.0.1-cp310-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 837f1dbba4d2d1895922f22e2e9b3948f8d0054baf6713e8b4471c8f67fec7dd |
|
MD5 | c052c7c453f76af745a17d424e668269 |
|
BLAKE2b-256 | f1b1fc0f1c5babf3a0d036479495b6424804559cbd9e03fd973d86d945044bfa |
Hashes for pyoxipng-8.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 020cc8e393545e5e95890836d09825fa037d2d89e8a6c0e20201e9db23f0c3a5 |
|
MD5 | 9872322ad8b0fc411bb96f9f0f082662 |
|
BLAKE2b-256 | 717166492d2e392e9a7421f8e222d2531419a4429544007cf171cc7e628d196b |
Hashes for pyoxipng-8.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f1ec7c68d5fe1933198e1b987c9ada8bd55919a24d0f0d40ee437164f2b6e116 |
|
MD5 | 27d948f3ce493c81667c1db8533e1c94 |
|
BLAKE2b-256 | 2a638c95ca3f24e86202a6a2651e5049ac59627c9b003bff1f584d9f0257cc87 |
Hashes for pyoxipng-8.0.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66c8e13b8cc3bec4dcdf6929b0535ac2dcff10d0852453acbc0dc9f646976087 |
|
MD5 | d7a51abdcedba81e63f5e85a32471d8a |
|
BLAKE2b-256 | 598769ff25ad1e7d0d233803eb83ab16690272d98cff7584e7c396af40092759 |
Hashes for pyoxipng-8.0.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f23b13d0a3f175c3644afd8648e0f161a22d628a95975f73601f1a7a6e702475 |
|
MD5 | 0e1c21269d5edbb0e9143b15f1909cea |
|
BLAKE2b-256 | 632c9b577daa6c3733f159bada958f82ee87d4ad31b0a1d4eab4158542e4a72a |
Hashes for pyoxipng-8.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86418721161512629ac8becd9d2e226b717b678a1d0e72bddc13e52b364f66bd |
|
MD5 | c0330010e3b2283c015b186136f8517b |
|
BLAKE2b-256 | bfa662861c08cef77eb51eafd3291b5619fde63343417c384e46244d72259c8d |
Hashes for pyoxipng-8.0.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f148396c8bf6859cac6c8c64f93c87eef9968f8c6d893aba7316184e0a0e3f99 |
|
MD5 | ec1c6a411217a5f09f11234c9adfd257 |
|
BLAKE2b-256 | 59ede1e855ec0023386c67f10ceb0cf4e88a014a023c7f0a6af9a8aefa6068ad |
Hashes for pyoxipng-8.0.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 673de540631d506580e06a15bbdc74e44419eb4d66704e76299ccf55c13325f2 |
|
MD5 | a67e74d6840b000961400b2d0e760b42 |
|
BLAKE2b-256 | 8b47c272998ea7c5a77290b6280c7ae6f06a217f50fd13b236b10935f8b376fa |
Hashes for pyoxipng-8.0.1-cp310-cp310-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21c6030ec5e28b70189c459127f5892871d1b549aa8524321915ecc7a2b33c05 |
|
MD5 | 123b11f69b91f25daa374020822937d3 |
|
BLAKE2b-256 | f1703d48cacc9b5de7cbaa6781f07baa952ba2e3ec029930bb6703a11a4fbf6c |
Hashes for pyoxipng-8.0.1-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67b9ae48e5539700b174db37a62a16db8795147d6b1bd11c83ea9f6054ac574d |
|
MD5 | 81915a1e5782a7c75dbd322b64145997 |
|
BLAKE2b-256 | 28d2a407c31f5271bce957ae8347638cc5fce5c9fbde9b103cab489830f3838e |
Hashes for pyoxipng-8.0.1-cp39-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1bcf85c00465186fd510b66b641ec6d63bb90196ad0faa334e50e2f3d99caf74 |
|
MD5 | 4ba48a1ef60017038b843f538fbd3163 |
|
BLAKE2b-256 | cbf1159ad72cb703c8ba35fb33122ef757597e2cecf047fb8f97250f0deef363 |
Hashes for pyoxipng-8.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca640ef1a47fd22acf5614fc193058b8e5b107cb44915381a3cb8e308b49ea99 |
|
MD5 | 248558020b45f90e36ebc0185fd3c979 |
|
BLAKE2b-256 | cdfb22faeb3f11e5bd8193b1f1e4a184b1b5a96dba70cef4cba1f92744e77056 |
Hashes for pyoxipng-8.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0efae1b9cac1cb3c07556ffb2b4e8b2c827b91f79d9c87c2da0f126103d0610 |
|
MD5 | b5b4e982e4b461cda0f2efc1fba45116 |
|
BLAKE2b-256 | beed4e79399473943e28c96fedc77daca7a8cad1895188e053bab58986fc1d06 |
Hashes for pyoxipng-8.0.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82ebe1b0180645461e7bdfb28e6e8fa4e40b5cdf4b9fafd7e945036c535fac12 |
|
MD5 | 104b8eed89d300c35bcde19d92172de9 |
|
BLAKE2b-256 | d6a8bf0114a0600be9f941e6143485f49aa20f220e7962fb856f68156189cfec |
Hashes for pyoxipng-8.0.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90ff4f73dacb44b95b39346d7ab740296f14fa9779d7fa126d2c18711de662a1 |
|
MD5 | e49c47ecf94c036b13a898b93d5e5b4d |
|
BLAKE2b-256 | 7df9db92b17e1fbc6b6d01863489a64a32a935bcad48588c9c25c9ca438db0ab |
Hashes for pyoxipng-8.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ef554324b4dcf26287018355f6ca986ec41f7573fab06905e01ba38df724073 |
|
MD5 | 6ea8347041df49cbfa7eacf7a5a2d2be |
|
BLAKE2b-256 | 135e100833cab540c75cbc3cf95aba69ab1296463a50a894bed9f635d605f6f0 |
Hashes for pyoxipng-8.0.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a64fc06daa0f90947d98ebe1471206930889c4003561dc404c3bcd1c07eef148 |
|
MD5 | bca04da251a7c50eb0a0e1d8b21638b1 |
|
BLAKE2b-256 | 030035866e133820786d51e5fe1b7b88d041a9ec935b0190f217ca35cde3e769 |
Hashes for pyoxipng-8.0.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f78c28e5175ef6ddec465f4565de4bf6097e6e3c4f6035a81826b5c9f6a41dea |
|
MD5 | 6ccdb2c471e36b18e1a753d00c6be39f |
|
BLAKE2b-256 | 64f6cab3e78cba0ad1c004d73aa477a9706d2121f4e6525b048e0354919efff9 |
Hashes for pyoxipng-8.0.1-cp39-cp39-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd50029bdbc00eec8d449080c7d3fda45e04e768acd3aee47459bbfce369f739 |
|
MD5 | 31c7204119b340e335ce54880480a831 |
|
BLAKE2b-256 | c8279910635a984662e777b4417cabf9abf04406042387181e8085acf94c644f |
Hashes for pyoxipng-8.0.1-cp38-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7af94163ed2215be5300e7118ca6e816fceb894ddd276159f26a8a69ee474bf |
|
MD5 | eb5b3f92d0d1fb0e133bc9cd9691d62a |
|
BLAKE2b-256 | b0261af2a897f7964945abbd643c6ce79b865fb7b948361b47f5c398e279b3b0 |
Hashes for pyoxipng-8.0.1-cp38-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | caa07e9d6985ae9ccb3d6118a0e7d89ef8db01ca07fa535bfa68720f4a428238 |
|
MD5 | 65a370d60d620eb91a0cffd76a35c91b |
|
BLAKE2b-256 | 68063898cef933bd398895c21c7ac4c95b4bbc4b2ad0172d4c30ed0b0e521c24 |
Hashes for pyoxipng-8.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee42d647f6c8de975cdc0d7b2df8ddbbb950b631efa97ef2984e9a7b1505db12 |
|
MD5 | 250b3b66240939bf1c2cc11e29a41959 |
|
BLAKE2b-256 | 634fe9bccc90322cf203327722676fec870a36bf59cda3d70829ef4f0edf46ec |
Hashes for pyoxipng-8.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e50ee905f85fbff6c4e380e7606629f90d7f20067630963a2bc13a1a47648cee |
|
MD5 | 2d8aa150cec004ed6bbc7c369f470ce9 |
|
BLAKE2b-256 | 10cfa478dda8122da40e91b2e217718aff349b6f6684bf0df2158fc1205176a0 |
Hashes for pyoxipng-8.0.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31e17c3f2cf8267958899dc87b95f7d633abf9e7720191010f9e874a83201323 |
|
MD5 | 44378df49cdbf4702b1d3b2af436e2da |
|
BLAKE2b-256 | d291e0a728d7db3a3f09645f1cfbbf7ddc035db46f5fd714f524ff8fb5eb53e1 |
Hashes for pyoxipng-8.0.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f572fc494cad96366e93668096763b41120d148fa3c7fbdea9da47b5783c0cb |
|
MD5 | 71df9000ed8574950356bc7499c994d6 |
|
BLAKE2b-256 | 24bf15ced677e883b652ad66ed442b1582f58c33132496ed2105838c3a3fb0af |
Hashes for pyoxipng-8.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c10bf6a105ba53c349ac0257dbb9da57c1d43a2163ad47a489ecdb6799cdfa0 |
|
MD5 | f2afb636c29b9cd2ce3f79e0d273326d |
|
BLAKE2b-256 | 64a37870a7003b5cb5c3ac315c0b02fca042bdc89e669ac04521d9d3fab36af3 |
Hashes for pyoxipng-8.0.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4f179a8ab9ab58c1783b460fe4bcb27611cf723a4d3e40eb5365f8d887ddf64 |
|
MD5 | 4c235d6869dd192614a13a223b96ae78 |
|
BLAKE2b-256 | 56a08e407516af5e30753006dd5218bc57e96b61557f4fed40e448afe4161ac4 |
Hashes for pyoxipng-8.0.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9b9e88536e63fc4ad6ee9c107eda3c852427549cec1c22e165daa439aca34ac |
|
MD5 | 31cf30a500cfb036f671b0d8cbb08bc1 |
|
BLAKE2b-256 | a24da4b2ebff4e248792b600e9502bc56101dd391de163d76e23315d0f29af2a |
Hashes for pyoxipng-8.0.1-cp38-cp38-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6add35bdb58b2224449d3c172a5d0f28a0c2a9cd96bee422c277dd136a9cf42a |
|
MD5 | 85399531ba41e65e2ad6c83a87bc9298 |
|
BLAKE2b-256 | 55f5d215c601c794c96d12cf6055f9e02c94c8b5a08b35a9b8c5c3a559eee7e8 |