Вы можете использовать wand
, который является привязкой Python к ImageMagick . Итак, начнем с этого изображения:
Мы можем исказить красную вершину (138,80) в верхний левый угол, зеленый (43, 22) слева внизу и синее (49 125) внизу справа, вот так (изображение 152x152):
#!/usr/bin/env python3
from wand.image import Image
# Open image and distort, giving start x,y and end x,y for 3 points
with Image(filename='start.png') as img:
points = (138, 80, 0, 0, # Red vertex
43, 22, 0,152, # Green vertex
49,125, 152,152) # Blue vertex
img.distort('affine',points)
# Save result
img.save(filename='result.png')
Вы можете сделать то же самое в терминале из командной строки:
magick start.png -distort affine "138,80 0,0 43,22 0,152 49,125 152,152" result.png
Ключевые слова : обработка изображений, Python, искажение, искажение, аффинное преобразование, преобразование, масштабировать, вращать, ImageMagick.