variations
A simple interface that allows processing of images.
Compatibility
python>= 3.7
Installation
-
Run
pip install variations -
(optional) If you want to use StackBlur
pip install pillow-stackblur -
(optional) If you want to use Face Detection
pip install face_recognition
Usage
from PIL import Image
from variations import processors
from variations.variation import Variation
from variations.utils import prepare_image
variation = Variation(
size=(400, 0),
max_height=800,
clip=False,
upscale=False,
anchor=processors.Anchor.TOP_LEFT,
jpeg=dict(
quality=92,
),
webp=dict(
lossless=True,
quality=90,
),
postprocessors=[
processors.ColorOverlay('#FF0000', overlay_opacity=0.25),
],
)
img = Image.open('source.jpg')
img = prepare_image(img, draft_size=variation.get_output_size(img.size))
new_img = variation.process(img)
dest_path = variation.replace_extension('dest.jpg')
variation.save(new_img, dest_path)
Options
| Type | Examples | Description | |
|---|---|---|---|
| size | tuple list |
(640, 480)(640, 0) |
The canvas size of image. If you set the width or height to zero, the corresponding value will be automatically adjusted based on the aspect ratio |
| max_width | int | 640 |
It specifies the maximum width in pixels.This option have meaning only when corresponding value in size is zero |
| max_height | int | 480 |
It specifies the maximum height in pixels.This option have meaning only when corresponding value in size is zero |
| clip | bool | When set to True, the image can be cropped when filling the canvas. |
|
| upscale | bool | When set to True, the image can be upscaled when filling the canvas. |
|
| anchor | str tuple list |
'tr' (top right)'c' (center)(1, 1) (bottom right) |
Defines the anchor point. |
| face_detection | bool | Use a face detection system to find anchor point. You must install facial recognition api to use this. | |
| format | str | 'JPEG' 'png' 'WebP' |
Enforce output image format. Defaults to 'AUTO', which means keep input format. |
| preprocessors | list | [processors.Crop(width=200, height=120, x=50, y=50)] |
PilKit processors are invoked before the main processing stage |
| postprocessors | list | [processors.ColorOverlay('#0000FF', 0.10)] |
PilKit processors are invoked after the main processing stage |
Additional options for specific formats
It is possible to pass additional options
to Image.save() method.
Variation(
# ...
jpeg=dict(
quality=80,
progressive=True,
),
webp=dict(
autoconvert=False,
quality=80,
),
tiff=dict(
compression='tiff_jpeg',
)
)
Development and Testing
After cloning the Git repository, you should install this in a virtualenv and set up for development:
virtualenv .venv
source .venv/bin/activate
pip install -r ./requirements.txt
pre-commit install
Metadata
Release files for variations 0.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| variations-0.3.3.tar.gz | 19.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| variations-0.3.3-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 35.1 kB
Release files / variations-0.3.3.tar.gz
| Download URL | variations-0.3.3.tar.gz |
|---|---|
| Size | 19.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0d5e0abf74b1ffca27afdbdf3595f9cb0b6bc0c70616c83d4a3235830d05af80
|
|
BLAKE2b-256 checksum How to use checksums |
6c10746e6cfccff1fa2a29140bb071f34241321d4800e733e909a0c4285f9400
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.6
|
Release files / variations-0.3.3-py2.py3-none-any.whl
| Download URL | variations-0.3.3-py2.py3-none-any.whl |
|---|---|
| Size | 15.7 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
b30b10e979bc232060953cf17efd8f9af11f7efae4523b81bfb1b77a7bc52697
|
|
BLAKE2b-256 checksum How to use checksums |
f99743d7d5ce691dd8194285f973529eeddd4659a8e581f6a432068b481910f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.6
|