Pillowで画像の一部を切り抜くには、Imageクラスのcropメソッドを用います。
書式は
Image.crop(box=None) |
引数 | 説明 |
box | 切り抜く領域を(左, 上, 右, 下)の座標のタプルで指定します。 |
(サンプルプログラム)
from PIL import Image
# 画像を開く
img = Image.open("Parrots.bmp")
# 画像を切り抜く
img_roi = img.crop((146, 81, 253, 183)) # (left, upper, right, lower)
# 切り抜いた画像の保存
img_roi.save("Parrots_roi.bmp")
(実行結果)
元画像 | 切り抜き画像 |
(補足)指定座標について
画像を切り抜く座標の定義ですが、画像の幅がWidth、画像の高さがHeightとすると、
画像の左上が(0, 0)、画像の右下が(Width-1, Height-1)となります。
実際に切り抜かれる画像の領域は、左上の座標(left, upper) を含み、右下の座標(right, lower) の1画素内側の領域が切り抜かれます。
参考
https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.Image.crop