Open In App

Wand affine_projection distortion method in Python

Affine Projection is very much similar to scale_rotate_translate distortion type. The only difference is that it exactly needs six real numbers for the distortion arguments.

Scalex, Rotatex, Rotatey, Scaley, Translatex, Translatey

Source Image: Example #1: 






from collections import namedtuple
# Import Color from wand.color module
from wand.color import Color
# Import Image from wand.image module
from wand.image import Image
 
Point = namedtuple('Point', ['x', 'y'])
 
with Image(filename ='gog.png') as img:
    img.background_color = Color('skyblue')
    img.virtual_pixel = 'background'
    rotate = Point(0.1, 0)
    scale = Point(0.7, 0.6)
    translate = Point(5, 5)
    args = (
        scale.x, rotate.x, rotate.y,
        scale.y, translate.x, translate.y
    )
    img.distort('affine_projection', args)
    img.save(filename ="affinegfg.png")

Output : Example #2: changing argument values. 




# Import Color from wand.color module
from wand.color import Color
# Import Image from wand.image module
from wand.image import Image
 
with Image(filename ='gog.png') as img:
    img.background_color = Color('skyblue')
    img.virtual_pixel = 'background'
    rotate = Point(0.1, 0.3)
    scale = Point(0.9, 0.2)
    translate = Point(7, 5)
    args = (
        scale.x, rotate.x, rotate.y,
        scale.y, translate.x, translate.y
    )
    img.distort('affine_projection', args)
    img.save(filename ="affinegfg2.png")

Output :




Article Tags :