Tuesday, November 18, 2008

Python Imaging Libraryを使用して画像を角丸四角に切り取る

Python Imaging Libraryを使用して画像を角丸四角に切り取るには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageDraw

# 角丸四角で画像を切り取る
img1 = Image.open("sf.jpg")
img2 = Image.new("RGB", img1.size, "#ffffff")
mask = Image.new("1", img1.size, 1)
draw = ImageDraw.Draw(mask)
rx = 20
ry = 20
fillcolor = 0
draw.rectangle((0,ry)+(img1.size[0]-1,img1.size[1]-1-ry), fill=fillcolor)
draw.rectangle((rx,0)+(img1.size[0]-1-rx,img1.size[1]-1), fill=fillcolor)
draw.pieslice((0,0)+(rx*2,ry*2), 180, 270, fill=fillcolor)
draw.pieslice((0,img1.size[1]-1-ry*2)+(rx*2,img1.size[1]-1), 90, 180, fill=fillcolor)
draw.pieslice((img1.size[0]-1-rx*2,img1.size[1]-1-ry*2)+
(img1.size[0]-1,img1.size[1]-1), 0, 180, fill=fillcolor)
draw.pieslice((img1.size[0]-1-rx*2,0)+
(img1.size[0]-1,ry*2), 270, 360, fill=fillcolor)
del draw

img3 = Image.composite(img2, img1, mask);

img3.save("sample637a.jpg")

元画像(sf.jpg)


出力画像(sample637a.jpg)

関連項目
Python Imaging Libraryまとめ
Python Imaging Libraryを使用して角丸四角を描画する

No comments: