Я не известен своими графическими c дизайнерскими способностями или терпением возиться с эстетикой, но это должно дать вам представление:
#!/usr/bin/env python3
from PIL import Image, ImageDraw
# Form basic purple image without alpha
w, h = 700, 250
im = Image.new('RGB', (w,h), color=(66,0,102))
# Form alpha channel independently
alpha = Image.new('L', (w,h), color=0)
# Get drawing context
draw = ImageDraw.Draw(alpha)
radius = 50
hline = h-radius
OPAQUE, TRANSPARENT = 255, 0
# Draw white where we want opaque
draw.rectangle((0,0,w,hline), fill=OPAQUE)
draw.ellipse((w//2-radius,hline-radius,w//2+radius,h), fill=OPAQUE)
# Draw black where we want transparent
draw.ellipse(((w//3)-radius,-radius,(w//3)+radius,radius), fill=TRANSPARENT)
draw.ellipse(((2*w//3)-radius,-radius,(2*w//3)+radius,radius), fill=TRANSPARENT)
# DEBUG only - not necessary
alpha.save('alpha.png')
# Put our shiny new alpha channel into our purple background and save
im.putalpha(alpha)
im.save('result.png')
Альфа-канал выглядит так - я искусственно добавил красную рамку, чтобы вы могли видеть ее размер: