Pillowの座標と長方形・線
Pythonで図形を描く場合、Pillowを使うことがあります。
通常は気にしなくていいのですが、細かい図形を描く場合、ピクセル単位の挙動が気になります。
まとめてみました。
イメージ
im = Image.new("RGB", (10, 10), "white")
このように書いた場合、10*10の画像が描かれます。
座標としては左上が(0,0)、右下が(9,9)となります。
長方形
draw.rectangle((1, 1, 5, 5), fill="blue")
このように書いた場合、5*5の画像が描かれます。
左上が(1,1)、右下が(5,5)となります。辺の長さは5です。
線
draw.line((2, 2, 2, 7), fill="green", width=3)
このように書いた場合、(2,2)と(2,7)を結ぶ線が描かれます。太さは3です。
(2,2)と(2,7)を結ぶ線が1ピクセル、両側に1ピクセルずつで太さは3ピクセルとなります。
太さが奇数の場合は分かりやすいです。偶数の場合はどうなるでしょうか。
draw.line((1, 5, 8, 5), fill="red", width=4)
このように書いた場合、(1,5)と(8,5)を結ぶ線が描かれます。太さは4です。
(1,5)と(8,5)を結ぶ線が1ピクセル、片側に2ピクセル、反対側に1ピクセルで太さは4ピクセルとなります。中心がずれます。
線を使うときは太さを奇数にするか、lineでなくrectangleを使うといいでしょう。
[ 2023年5月31日 | カテゴリー: Python | タグ: Pillow ]
« 中村隼人の家系図 | ハリー・ベイリーとは何者か »
コメントを残す