Как обрезать изображение по форме полигона?
Мне очень нужна функция для получения обрезанной картинки по форме полигона , что-то вроде этого:
def slice(img, polygon):
#Somthing...
return sliced_img
Я уже находил что-то подобное на англ. Stackoverflow:
def slice_img(img, plg, window_size):
masked_result = img.copy()
mask_surface = pygame.Surface(window_size)
pygame.draw.polygon(mask_surface, (255,255,255), plg)
masked_result.blit(mask_surface, (0, 0), None, pygame.BLEND_RGBA_MULT)
return masked_result
Но эта функция не подходит т.к.:
1.Она возвращает исходное изображение , только видно будет только ту часть которая подходит по форме полигона (т.е. если img это гигантское изображение, а поместить мне надо несколько таких изображений, то каждое изображение будет закрывать все, что уже нарисовано)
2.Она работает дёргано(изображение разрывает на куски)
Возможно это можно реализовать и не с помощью pygame, а других библиотек (вроде PIL), но я в них не разбираюсь