Usage examples¶
Every affine transformation is build from 4 ElementaryTransform
s:
To create a more complex transformation these
ElementaryTransform
s can be chained together
with a ComposedTransform
The following examples showcase the functionality of pillow_affine
based on
the following image:
Note
The above image can be downloaded here and is cleared for unrestricted usage.
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))
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))
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))
Translate
¶
from pillow_affine import Translate
transform1 = Translate((100.0, 50.0))
transform2 = Translate((100.0, 50.0), inverse=True)
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))
)
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)