Python bindings for Google's Guetzli, a JPEG encoder that optimises JPEG compression
Project description
PyGuetzli is a Python binding for Google’s Guetzli library.
Description of Guetzli from official’s repo:
Guetzli is a JPEG encoder that aims for excellent compression density at high visual quality. Guetzli-generated images are typically 20-30% smaller than images of equivalent quality generated by libjpeg. Guetzli generates only sequential (nonprogressive) JPEGs due to faster decompression speeds they offer.
Documentation
More topics at https://wanadev.github.io/pyguetzli/
Usage Example
import pyguetzli
input_jpeg = open("./test/image.jpg", "rb").read()
optimized_jpeg = pyguetzli.process_jpeg_bytes(input_jpeg)
output = open("./optimized.jpg", "wb")
output.write(optimized_jpeg)
Changelog
1.0.10: Python 3.10 support and wheels
1.0.9: Provides prebuilt wheel packages
1.0.8: Updates Guetzli and python dependencies
1.0.7: Fixes unicode issue when installing pyguetzli (#4)
1.0.6: Fixes a typo in compilator options on unix
1.0.5: Adds optimization flags when compiling Guetzli
1.0.4: MS Windows support
1.0.3: Updates Guetzli library
1.0.2: PIL Images: fixes crash with non RGB/RGBA images (grayscale, indexed,…)
1.0.1: Adds --std=c++11 flag when building Guetzli
1.0.0:
New and simpler API
Built-in function to deal with PIL / Pillow Images
Documentation (Sphinx)
Guetzli update
0.9.0: Initial release
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
Hashes for pyguetzli-1.0.10-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0588e6c8963c8bf282cb3ccc86aa1c31ac26f867dd2632749a26effd8d54570 |
|
MD5 | c0edd5b21030feb4f924283dcddaabdf |
|
BLAKE2b-256 | db5bbac1ac22421c2f6099079951e06fcab927348dc95d44eb7d934e7c9abc55 |
Hashes for pyguetzli-1.0.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a280c74759c1ad48dc9c4a117a96231b96eeda071869ad071e574bd544f8edf2 |
|
MD5 | 70cfbb1b5c1793b123cfb8e512d92f63 |
|
BLAKE2b-256 | 3bc7c678de3a53f29e58df33322ffa2757d14c1e2d429223d959065c7c85606c |
Hashes for pyguetzli-1.0.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 295a24317853c7886694dcfb285ccb3b1a87f7e4f9cfe9d4de7067fc842ac89b |
|
MD5 | cdf1f3a994babe43c6b0a04198c02bf4 |
|
BLAKE2b-256 | 1e0efc67c6dc05dcb7feaa43b176fd03028e6e50614cd5823a952fb5d3f909cc |
Hashes for pyguetzli-1.0.10-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08f17081ffbee4aed7b6d1cbacd6d9611e3bc4e636bf58521ebc1b9cbc688ed5 |
|
MD5 | 11252619fc2eb35be8fdf99c65e637dd |
|
BLAKE2b-256 | 894b88a57a34257967958b3c26469e756230e8a584b4947a2eea4dbe42e16993 |
Hashes for pyguetzli-1.0.10-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d2e661d3d99994a0921cb35de8aad2022f58a21563a51b7739ee39d30e8330a |
|
MD5 | efaffa3b036af41beed33fafb665626c |
|
BLAKE2b-256 | 67ded54561fb515d70beef30fd5b28a7e8401d6f7bdfe341295492480f4ba2dd |
Hashes for pyguetzli-1.0.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc29879145ebe2bf303ed05b8545a9cc2c4e62641bd533b8e146ad5d9b6265bc |
|
MD5 | d35fc721621af1542a534c64bbd66bad |
|
BLAKE2b-256 | 76b3997da4f697f52f4af17272abce47e7a8df3fa3f608dd9b283a4ef2507ea4 |
Hashes for pyguetzli-1.0.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70681f24f7d1b1348ea8f408ed1f78de0c50e032feea543ff0134309ed5dc4a8 |
|
MD5 | 64ede76fa5cd3e4d9fea9c9830e6ba96 |
|
BLAKE2b-256 | b6a23978f5c59b82e8b835cb471ed8ba902d9049b3f60a1ec10ef1b11a0c26c2 |
Hashes for pyguetzli-1.0.10-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1b294523d179c8423b61f119dd2c57dda9f9a20d09519ac7eecaca8f0c38725 |
|
MD5 | 0e10e89f158e8bddf4c4269c8e17ce85 |
|
BLAKE2b-256 | 2b6fcc59875617a29560cb58296617c21a2ce7a820e39843e1a038ed3cc365d0 |
Hashes for pyguetzli-1.0.10-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a9984aa1887d6ec07ba8969ea8a39ab5a75a168a18d4ab7936fd735e8f652d4 |
|
MD5 | 2f5995c9042a11170b8b505733fa88c2 |
|
BLAKE2b-256 | b12d4a73b6d02199de1bc486cde68b8d8d98dd708c889802af0160de34c0e140 |
Hashes for pyguetzli-1.0.10-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e46e623971534fe74b67fec780e1a91d11a4c9cb4121043431bb1321f2d29fcd |
|
MD5 | 5ca840d8031395c66d5ca015f1b49572 |
|
BLAKE2b-256 | 5b6a5022a54cfb56dca19d8df0df93fbe71ea5b2edfba7575d6e96ef37c716aa |
Hashes for pyguetzli-1.0.10-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 010b1f99393348f2ce1f069b967bc377748d7f43c9e678d1da90ff07ac04f1cd |
|
MD5 | daaeb3340c84e23bc350ba517ebbe7cf |
|
BLAKE2b-256 | 06dafacb4800fee7cd6fe2d24750bf4ef16cceb847fb7d3616a6421211bdb0c8 |
Hashes for pyguetzli-1.0.10-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10dd536d98478fdb854a9f8d3dd6c9d0e4e21fc4b285d50894acbff34ed38ef9 |
|
MD5 | e07c0d1dee010f808b5d6499f0253f25 |
|
BLAKE2b-256 | 2a6fbc7312d66e5ff001c139dabc64aa82f148f7d87d5ad911550392a5cb869a |
Hashes for pyguetzli-1.0.10-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cba39e8ad5b7ed0069352c3bfa24bd98970a59685a75605234912b2a4f9e906 |
|
MD5 | f72616fc8cb3997defb27c42468806a5 |
|
BLAKE2b-256 | 17a9cc8185e6d67cfd2ceb8cf601e0f879a89c068bf61813110817f96d9b5847 |
Hashes for pyguetzli-1.0.10-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18139ea33e3dc387ee8eb59e5a46b70826cd6721ea066cd386f0441da32c26af |
|
MD5 | 604bee235daa1c3f6513e738bfd37c97 |
|
BLAKE2b-256 | 6505646bac0be53cfc34c07af92f389053a5a8a9b7dab18e424ea54a4f49124f |
Hashes for pyguetzli-1.0.10-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cda540300ce1d936fd7b3e2b98f2de52c5ff8e44e15bb04acd47152daa1255d6 |
|
MD5 | 1036acb04bd39eac6c9f29d76d0214b2 |
|
BLAKE2b-256 | 474f5489088ea31efdf7885f3340c2c9ed5d8879b28b6fe02bc0acffb359e286 |
Hashes for pyguetzli-1.0.10-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c1083929d684b248cb7edd9e99186898aaa29c750d8ad82169cf39ebcc10e79 |
|
MD5 | 212c4e9a2026d19dd9ec4e02100d1ac2 |
|
BLAKE2b-256 | 293b13806b3d8bc4333bfc2ef8d84318494fb30c8e66a8ab631495f727f2b16a |