Monday, November 24, 2008

Python Imaging Libraryで画像をぼかした円で切り取る

PILで画像をぼかした円で切り取るには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageFilter
import ImageDraw

# 半透明円の切り取りをする
img1 = Image.open("sf.jpg")
img2 = Image.new("RGBA", img1.size, "#000000")
mask = Image.new("L", img1.size, 1)
draw = ImageDraw.Draw(mask)
draw.ellipse((10,10,img1.size[0]-11,img1.size[1]-11), fill="#ffffff")
del draw
mask = mask.filter(ImageFilter.BLUR)
img2.paste(img1, (0,0))
img2.putalpha(mask)
# PNGで保存
img2.save("sample650a.png")
# 白背景と合成してjpegで保存
img3 = Image.new("RGB", img1.size, "#ffffff")
img3.paste(img2, mask=img2)
img3.save("sample650b.jpg")

元画像(sf.jpg)


出力画像1(sample650a.png)


出力画像2(sample650b.jpg)


関連情報
Python Imaging Libraryまとめ

No comments: