Я использую Python 3.8 и PIL, чтобы попытаться обрезать квадратное изображение в круг.
Я попытался использовать решение, предоставленное по следующей ссылке: обрезать изображение по кругуКстати, используя python и используя решение по ссылке: Как создать круглую миниатюру, используя подушку python и наложение на фоновое изображение Но ни один из них не сработал.
Когда япримените маску с помощью img.putalpha (маска), изображение получится искаженным и черно-белым.
from PIL import Image, ImageOps, ImageDraw
im = Image.open('avatar.jpg')
im = im.resize((120, 120));
bigsize = (im.size[0] * 3, im.size[1] * 3)
mask = Image.new('L', bigsize, 0)
draw = ImageDraw.Draw(mask)
draw.ellipse((0, 0) + bigsize, fill=255)
mask = mask.resize(im.size, Image.ANTIALIAS)
im.putalpha(mask)
output = ImageOps.fit(im, mask.size, centering=(0.5, 0.5))
output.putalpha(mask)
output.save('output.png')
Когда я использую код, приведенный выше, следующее изображение: исходное изображение
Получается как: искаженное изображение