Как я могу обрезать квадратное изображение в круг? - PullRequest
0 голосов
/ 08 ноября 2019

Я использую 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')

Когда я использую код, приведенный выше, следующее изображение: исходное изображение

Получается как: искаженное изображение

...