Thursday, June 13, 2019

Pillowを使用して画像を円形に切り取る

Pillowを使用して画像を円形に切り取るには、以下のサンプルコードのようにマスクを使用します。

circle-cutting.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw

# 画像を円形に切り取る
img1 = Image.open("/tmp/sf.jpg")
img2 = Image.new("RGB", img1.size, (0xbb, 0xdd, 0xff))
mask = Image.new("1", img1.size, 1)
draw = ImageDraw.Draw(mask)
draw.ellipse((0,0,img1.size[0]-1,img1.size[1]-1), fill=0)
del draw
img3 = Image.composite(img2, img1, mask);

img3.save("/tmp/circle-cutting.png")

〇元画像(sf.jpg)


〇出力画像(circle-cutting.png)


〇関連情報
Dockerでpython3.7とPillowをインストールしたコンテナ(Alpine3.9ベース)を作成する