Pillow plugin for JPEG-XL, using Rust for bindings.
Project description
pillow-jpegxl-plugin
Pillow plugin for JPEG-XL, using Rust for bindings.
Features
- JPEG-XL Plugin for Pillow
- Encoder/Decoder to work with JPEG-XL using safe wrapper
- Support EXIF metadata encoding
Install via PIP
pip install pillow-jxl-plugin
Build from source
Make sure Rust
and maturin installed, then run:
git clone https://github.com/Isotr0py/pillow-jpegxl-plugin
cd pillow-jpegxl-plugin
maturin build --release --features vendored
If you have libjxl
installed and want to use dynamic link, run:
maturin build --release --features dynamic
Plugin Usage
Use import pillow_jxl
to register the plugin in your code.
Example:
import pillow_jxl
from PIL import Image
# Lossless encode a png image
with Image.open("example.png") as img:
img.save("example.jxl",lossless=True)
# encode image with JPEG-Style quality
with Image.open("example.png") as img:
img.save("example.jxl", quality=98)
# Lossless construct from a jpeg image
with Image.open("example.jpg") as img:
img.save("example.jxl",lossless=True)
# Decode jxl image
with Image.open("example.jxl") as img:
display(img)
Wheels status
Wheels | Windows 64-bit | MacOS | manylinux |
---|---|---|---|
CPython3.8 | ✔ | ✔ | ✔ |
CPython3.9 | ✔ | ✔ | ✔ |
CPython3.10 | ✔ | ✔ | ✔ |
CPython3.11 | ✔ | ✔ | ✔ |
CPython3.12 | ✔ | ✔ | ✔ |
CPython3.13 | ❌ | ❌ | ✔ |
PyPy3.8 | ❌ | ❌ | ✔ |
PyPy3.9 | ❌ | ❌ | ✔ |
PyPy3.10 | ❌ | ❌ | ✔ |
Credits
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
Built Distributions
Close
Hashes for pillow_jxl_plugin-1.2.8-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7662876696c02772644af49ea5747d95bd0652397e9320f64dd8e39196272cd |
|
MD5 | 2169055e6f459ef9692b35eb956c1a06 |
|
BLAKE2b-256 | cfa9ce5dfc3b909e506d71b7e10d04b704501b8db440a2181d76a6ca2ab8fea7 |
Close
Hashes for pillow_jxl_plugin-1.2.8-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec976f039f6e0fda8d80f2826b57cf373fc2d4c630f6b09157523af83372dc20 |
|
MD5 | 87740788a6d540c091ed1a8e7b24ac12 |
|
BLAKE2b-256 | 622080daebd617aad01d23c739f3ae4f63cf27e2f426938040911be5dc1202dc |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp312-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57bab9c6c5daebe2c48fcfa170b2e45d66df8fddf5baa40b4fa36e3df6f838d2 |
|
MD5 | 5457e4a49f7af6f11801edabb6e7889f |
|
BLAKE2b-256 | 06e7b37cfd856c204b13de4c389b173017956baa9e0cd6a2f225a6dbf58e12b6 |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69d5841c023bb04cef0a62d550ff99959ef9f40b5dc7a386f7c99c9c70d44962 |
|
MD5 | b6906d5e5eba523f259750c966f0e030 |
|
BLAKE2b-256 | 2551791e2bad4b6d77f2d1cd051ac45bcb200572514c81e5b30841b7294898f8 |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp312-cp312-macosx_12_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 703f40bbeb7e93222ce0a1517ae27ac645b9e96e4b5d956823d83f2cfbe95bec |
|
MD5 | 9a140ffdf73e7f01eeb4946e7b36c3d9 |
|
BLAKE2b-256 | 37786676fba443d3c3c735acf1995a51e498ee611da23a55fa8126e7e73a4e39 |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp312-cp312-macosx_12_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a98f0337a5ca254b3a9403a1d3514536553ab3f56bc8d1fefcf6380a78a6cee |
|
MD5 | daf41605535950d9434eded3cb90582c |
|
BLAKE2b-256 | a0dd9663f56a7c5e465ceff7ee55f955c72b0fb74d1a02c7d1d1f95914056213 |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45cfd354cd8da6123eb6a64d73f53c32405978b4a2e1ef38f93cdf9f88dc63a7 |
|
MD5 | abeff5c4b2fe6367baa3bbf1b4a0eded |
|
BLAKE2b-256 | 93daea07205a62b5a391f604aca6248b1cd1e5f03f53695e2c381d2ca2ef8111 |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b0862c25cbf8579392390ae16ebfd9bb634db3ab5eb058c50b20b54ef5071c2 |
|
MD5 | dd1ea173e85027b8761ecf5aea4e867d |
|
BLAKE2b-256 | 653265e9f32f1a962a5e61a5fba43768048c55b2cf145cdde901ec4a8130fd11 |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 880bb06bf973beda5114ebea0f404061c560539b60ba093ea47a4266352f9d85 |
|
MD5 | e1355adbc59dc4fd524e93d9788eed8f |
|
BLAKE2b-256 | f35959c08fdd81dac59832114f5494b9c88f1861f744dbb413df3b525c0f8d6c |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp311-cp311-macosx_12_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b058a9a6cc20c08f23c5f8b811d9d8cb0c89f5b1b3abae181d036e793a9bd953 |
|
MD5 | c5696c037d6e6322bc80ff11047d0cbd |
|
BLAKE2b-256 | e4000f9faaa5cf177a87135f0dffbc6b9e8706a8a7169c7b71088a4a34735d07 |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12c92bcb920cc7b3cfa570c9efdc47e0d4fe4ae3c7c9eed084df97f06c86fa87 |
|
MD5 | bb0818d91179276c7c81da94ba93b726 |
|
BLAKE2b-256 | 0f56da326a82f280a6317fe188f5f1b656a78c86ff52cae4ddac3292f3e071b7 |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e0138abf1d676fd0f4072e368dc2edce58704e2073f8666c25b94b0754bcb17 |
|
MD5 | 53033718e32388f0250124d0b2f6712e |
|
BLAKE2b-256 | c2afdb5586186509e4aa0a6dc751b0528a9054579a4359f8c97c2560f46897db |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5bb9cd63fba188ca2299e350f59ff949bdd5d2cecfe193030570a3fa4428f848 |
|
MD5 | 8a4149f4234f2199bbd66f543c139608 |
|
BLAKE2b-256 | bb2b7ea49f4ce6ec4089f1bceb0e29adac485db95498094717ff5bf9142e1526 |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp310-cp310-macosx_12_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0005901dfc6eab81d96e135eea127053bd382ab1576f9dd4bc53bc15787f676b |
|
MD5 | 540b720bec33bfcd85109fa6a15217af |
|
BLAKE2b-256 | c4cf9743363952a530636fa77b3b1d9c3aca5361b9d098d75423568be3f01fd8 |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 000cbeeae0a17961225e34f5f224302d411404e183f2268d11bebe0f087da8a5 |
|
MD5 | 09182cc0557650495e504f578abd1121 |
|
BLAKE2b-256 | 4be504f5a0e3281f68bf65f7fdc62db84df3d37ce1729770ec018ccf678ceab7 |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf54e5dd26505d8b5b61edc38ac5002d3c28b605d23d9d1c99b099377bce3fb5 |
|
MD5 | 73d843aff04a2838b3301ba7067b0202 |
|
BLAKE2b-256 | 3610f576d5b21a092c0bbd32c6e969d24e67ddb3ffd37217ac4f4ec064cd19c1 |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6413afa770eb3c59a6b2d4c8bb9b40803629a47c32c787543c2ae020e4a8a2ad |
|
MD5 | 23cc33db9df59cf5ca986d127d69f108 |
|
BLAKE2b-256 | 75ae5afcfd6ea25e4914600819ebe5841e64ea9aa795afa8db50c5e9e6832044 |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp39-cp39-macosx_12_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4562bd53b156612a7f386bac70cd8feb23f27c3386dbdeece0e7c788bdd72050 |
|
MD5 | 18b98e263b046ccefd70878ccfa7b930 |
|
BLAKE2b-256 | 7b915e1600911cf4b5330cb14e42db3159b78f0d6d745446801264f480358b50 |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp38-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fcb94ed0ea32f3ecab3adcf5ac899e1e8f7ea8461ffb80b70b28de9ee1fb598 |
|
MD5 | e1bb12aac4f5b8e082f98ba77f9a722b |
|
BLAKE2b-256 | c804684efc1b68199d41e8d512f435d82c3bdf7d6c3dfd0ee88569667fece2ac |
Close
Hashes for pillow_jxl_plugin-1.2.8-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8cc91a74e1f678119afdf0ed56ddb5359180d3afa948fa501af2f5d72718b4cf |
|
MD5 | 6a394b57303d19edd2182cfc6c21e166 |
|
BLAKE2b-256 | 4a88e7a0edcf06abcced498ea3998819bcc6cdc480a402c4c4e25cbd6cd6c707 |