Skip to content

Latest commit

 

History

History
160 lines (111 loc) · 3.75 KB

examples.rst

File metadata and controls

160 lines (111 loc) · 3.75 KB

Usage examples

Every affine transformation is build from 4 ~pillow_affine.transforms.ElementaryTransform s:

  • ~pillow_affine.transforms.Shear
  • ~pillow_affine.transforms.Rotate
  • ~pillow_affine.transforms.Scale
  • ~pillow_affine.transforms.Translate

To create a more complex transformation these ~pillow_affine.transforms.ElementaryTransform s can be chained together with a ~pillow_affine.transforms.ComposedTransform

The following examples showcase the functionality of pillow_affine based on the following image:

girl with painted face - Steve Kelly

Note

The above image can be downloaded here and is cleared for unrestricted usage.

~pillow_affine.transforms.Shear

from pillow_affine import Shear

transform1 = Shear(30.0)
transform2 = Shear(30.0, clockwise=True)
transform3 = Shear(30.0, center=(0.0, 0.0))

Shear(30.0)

Shear(30.0, clockwise=True)

Shear(30.0, center=(0.0, 0.0))

~pillow_affine.transforms.Rotate

from pillow_affine import Rotate

transform1 = Rotate(30.0)
transform2 = Rotate(30.0, clockwise=True)
transform3 = Rotate(30.0, center=(0.0, 0.0))

Rotate(30.0)

Rotate(30.0, clockwise=True)

Rotate(30.0, center=(0.0, 0.0))

~pillow_affine.transforms.Scale

from pillow_affine import Scale

transform1 = Scale(2.0)
transform2 = Scale((0.3, 1.0))
transform3 = Scale(0.5, center=(0.0, 0.0))

Scale(2.0)

Scale((0.3, 1.0))

Scale(0.5, center=(0.0, 0.0))

~pillow_affine.transforms.Translate

from pillow_affine import Translate

transform1 = Translate((100.0, 50.0))
transform2 = Translate((100.0, 50.0), inverse=True)

Translate((100.0, 50.0))

Translate((100.0, 50.0), inverse=True)

~pillow_affine.transforms.ComposedTransform

from pillow_affine import Shear, Rotate, Scale, Translate, ComposedTransform

transform1 = ComposedTransform(
    Shear(45.0),
    Rotate(30.0),
    Scale(0.7),
)
transform2 = ComposedTransform(
    Scale((0.3, 0.7)),
    Rotate(70.0, clockwise=True),
    Translate((50.0, 20.0))
)

transform1

transform2

expand

from pillow_affine import Shear

transform = Shear(30.0)
transform_params1 = transform.extract_transform_params(size)
transform_params2 = transform.extract_transform_params(size, expand=True)

Shear(30.0)

hear(30.0) with expand=True