Skip to main content

A simple interface that allows processing of images.

Project description

variations

A simple interface that allows processing of images.

PyPI Build Status Software license

Compatibility

  • python >= 3.7

Installation

  1. Run pip install variations

  2. (optional) If you want to use StackBlur

    pip install pillow-stackblur

  3. (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

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

variations-0.3.2.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

variations-0.3.2-py2.py3-none-any.whl (23.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file variations-0.3.2.tar.gz.

File metadata

  • Download URL: variations-0.3.2.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for variations-0.3.2.tar.gz
Algorithm Hash digest
SHA256 6a66e55a534d5d1379e27a5377cb955539e3a237e73989a8b765895559aedbff
MD5 04628814a0e094bcbe55bdc3a21302a4
BLAKE2b-256 13eb889fe81abec2a131d91f6f4e377aeef9a4370b865aab3393f5ccaa598028

See more details on using hashes here.

File details

Details for the file variations-0.3.2-py2.py3-none-any.whl.

File metadata

  • Download URL: variations-0.3.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 23.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for variations-0.3.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 160da0aaa6f07d2cfb58aa07580f5a3fa710020d1dfb16973ec5461ed697d6f6
MD5 9893ff91a536466954bebb89e473195c
BLAKE2b-256 0430e546970beecc355c9da300160d0bf1f938292bb5928b9ba2955646092a66

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page