【Python】Pillow 図形を書く方法

まくまく
まくまく
プラグラミング言語「PYTHON」を使ってみよう!!業務自動化・効率化の実例を踏まえ、解説できればと思っています。対象は、プログラムを学び始めた初心者向けとなります。今回はPillowライブラリを使用して図形を描写してみようと思います。



使用するのはPillow

使用するのは、画像処理ライブラリのPillow(PIL)です。ここではPillowがインストールされているのを前提として書き進めていきます。

Pillowの公式ドキュメントはこちらから(英語です。)

サンプルコード

from PIL import Image, ImageDraw

im = Image.new('RGB', (300, 300), (128, 128, 128))
draw = ImageDraw.Draw(im)
draw.rectangle([(20, 20), (140, 140)], fill=(0, 0, 255), outline='orange',  width=3)
draw.rectangle((160,150,280,270),fill=None,outline=(255,0,0),width=5)
draw.ellipse([(50, 180), (120, 250)], fill='yellow', outline='lime', width=4)
draw.line(((170, 20),(220, 140) ,(280, 20)), fill=128, width=3)

im.save('draw.png')

コメント

  • 「im = Image.new(〜」でイメージオブジェクト作成
  • 「draw.rectangle〜」で長方形を作成
  • 「draw.ellipse〜」で円を作成
  • 「draw.line 〜」で線を作成

まずは「im = Image.new(〜」でイメージオブジェクト作成します。これから絵を書くキャンバスの大きさみたいなイメージです。

「draw.rectangle〜」で座標を指定して長方形を描きます。長方形の左上の座標(x,y)と右下の座標(xx,yy)を指定すると長方形を書けます。ちなみにキャンバスの左上が座標原点(0,0)です。このあたりは数値を変えてみて、結果を確認するとすぐに理解できると思います。

長方形を描く場合、2つの記載方法があって、(20, 20), (140, 140)でも、(20,20,140,140)でも結果は同じです。

fillは塗りつぶし、outlineは線の色、widthは線の幅です。

色の指定は、RGBで(255, 0, 0)と書いても’blue’と書いてもどちらでもok。
↑どっちも同じ色になります。

直線は、連続して座標を入れていくと、それぞれの座標をつなげた連続線が描かれます。

出力



タイトルとURLをコピーしました