The thumbhash library implements the Thumbhash image placeholder generation algorithm invented by Evan Wallace in Python.
A full explanation and interactive example of the algorithm can be found at https://github.com/evanw/thumbhash
You need Python 3.7+.
$ pip install thumbhash-pythonCreate thumbhash from image file:
from thumbhash import image_to_thumbhash
with open('image.jpg', 'rb') as image_file:
hash = image_to_thumbhash(image_file)You can also pass file name as parameter to the function:
from thumbhash import image_to_thumbhash
hash = image_to_thumbhash('image.jpg')These functions use the Pillow library to read the image.
If you want to directly convert a rgba array to a thumbhash, you can use the low-level function:
from thumbhash.encode import rgba_to_thumbhash
rgba_to_thumbhash(w: int, h: int, rgba: Sequence[int]) -> bytesTo decode a thumbhash into an image:
from thumbhash import thumbhash_to_image
image = thumbhash_to_image("[THUMBHASH]", base_size=128)
image.show()
image.save('path/to/file.png')Alternatively you can use the following function to deal directly with the pixels array (without relying on Pillow):
from thumbhash.decode import thumbhash_to_rgba
def thumbhash_to_rgba(
hash: bytes, base_size: int = 32, saturation_boost: float = 1.25
) -> Tuple[int, int, List[int]]You can also use the CLI mode to encode or decode directly via your shell.
Usage:
$ thumbhash [OPTIONS] COMMAND [ARGS]...Options:
--install-completion: Install completion for the current shell.--show-completion: Show completion for the current shell, to copy it or customize the installation.--help: Show this message and exit.
Commands:
decode: Save thumbnail image from thumbhashencode: Get thumbhash from image
Save thumbnail image from thumbhash
Usage:
$ thumbhash decode [OPTIONS] IMAGE_PATH HASHArguments:
IMAGE_PATH: The path where the image created from the hash will be saved [required]HASH: The base64-encoded thumbhash [required]
Options:
-s, --size INTEGER RANGE: The base size of the output image [default: 32; x>=1]--saturation FLOAT: The saturation boost factor to use [default: 1.25]--help: Show this message and exit.
Get thumbhash from image
Usage:
$ thumbhash encode [OPTIONS] IMAGE_PATHArguments:
IMAGE_PATH: The path of the image to convert [required]
Options:
--help: Show this message and exit.
See Contributing documentation
thumbhash-python is distributed under the terms of the MIT license.