Showing posts with label Pillow. Show all posts
Showing posts with label Pillow. Show all posts

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ベース)を作成する

Monday, June 03, 2019

Pillowを使用して角丸四角を描画する

Pillowを使用して角丸四角を描画するには、以下のサンプルコードのようにrectangleメソッドとpiesliceメソッドを実行します。

pillow-roundrectangle.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw

# 角丸四角を描画する
img1 = Image.new("RGB", (100,100), "#ffffff")
draw = ImageDraw.Draw(img1)
rx = 10
ry = 10
fillcolor = "#bbddff"
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

img1.save("/tmp/roundrectangle.png")

出力画像(roundrectangle.png)


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

Thursday, May 30, 2019

Pillowで扇形を描画する

Pillowで扇形を描画するには、以下のサンプルコードのようにpiesliceメソッドを使用します。

pillow-pie.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw

# 扇形を描画する
img1 = Image.new("RGB", (100,100), "#ffffff")
draw = ImageDraw.Draw(img1)
draw.pieslice((10,10)+(89,89), 90, 180, outline="#000000", fill="#bbddff")
del draw

img1.save("/tmp/pillow-pie.png")

出力画像(pillow-pie.png)


Tuesday, May 28, 2019

Pillowでポリゴンを描画する

Pillowでポリゴンを描画するには、以下のサンプルコードのようにpolygonメソッドを使用します。

pillow-polygon.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw
# ポリゴンを描画する
img1 = Image.new("RGB", (100,100), (0xff, 0xff, 0xff))
draw = ImageDraw.Draw(img1)
draw.polygon((10,10)+(10,89)+(89,10), outline=(0x00, 0x00, 0x00), fill=(0xbb, 0xdd, 0xff))
del draw
img1.save("/tmp/pillow-polygon.png")

〇出力画像(pillow-polygon.png)


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

Saturday, May 25, 2019

Pillowで円を描画する

Pillowで円を描画するには、以下のサンプルコードのようにellipseメソッドを使用します。

pillow-ellipse.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw
# 円を描画する
img1 = Image.new("RGB", (100,100), (0xff, 0xff, 0xff))
draw = ImageDraw.Draw(img1)
draw.ellipse((0,0,99,99), outline=(0x00, 0x00, 0x00), fill=(0xbb, 0xdd, 0xff))
del draw
img1.save("/tmp/pillow-ellipse.png")

〇出力画像(pillow-ellipse.png)


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

Pillowで四角を描画する

Pillowで四角を描画するには、以下のサンプルコードのようにrectangleメソッドを使用します。

pillow-rectangle.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw
# 四角を描画する
img1 = Image.new("RGB", (100,100), (0xff, 0xff, 0xff))
draw = ImageDraw.Draw(img1)
draw.rectangle((10,10,89,89), outline=(0x00, 0x00, 0x00), fill=(0xbb, 0xdd, 0xff))
del draw
img1.save("/tmp/pillow-rectangle.png")

〇出力画像(pillow-rectangle.png)


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

Friday, May 24, 2019

Pillowで直線を描画する

Pillowで直線を描画するには、以下のサンプルコードのようにlineメソッドを使用します。

pillow-line.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw
# 線を引く
img1 = Image.new("RGB", (100,100), (0xff, 0xff, 0xff))
draw = ImageDraw.Draw(img1)
draw.line((0,100)+(100,0), fill=(0xbb, 0xdd, 0xff), width=2)
del draw
img1.save("/tmp/pillow-line.png")

〇出力画像(pillow-line.png)


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