Pillowで画像(画像データ)を画像の上下左右反転、90°ごとの回転をさせるには、Imageクラスのtransposeメソッドを用います。
これとは別にImageOpsモジュールのmirror関数(左右反転)とflip関数(上下反転)があるので、これは後半で説明します。
構文
Image.transpose(method)
パラメータ
引数名 | 説明 |
method | 上下左右反転、90°ごとの回転の種類を以下の中から指定します。 Image.FLIP_LEFT_RIGHT Image.FLIP_FLIP_TOP_BOTTOM Image.FLIP_ROTATE_90 Image.FLIP_ROTATE_180 Image.FLIP_ROTATE_270 Image.FLIP_TRANSPOSE Image.FLIP_TRANSVERSE |
戻り値 | 上下左右反転、回転した画像(PIL.Image) |
サンプル
from PIL import Image
# 画像を開く
img = Image.open("image.jpg")
# 左右上下反転、90度ごとの回転
img_transpose = img.transpose(Image.FLIP_LEFT_RIGHT)
# 画像の保存
img_transpose.save("image_transpose_FLIP_LEFT_RIGHT.jpg")
(実行結果)
元画像 | 左右反転(Image.FLIP_LEFT_RIGHT) |
上下左右、回転の種類
methodに指定する種類は以下の通りです。
Image.FLIP_LEFT_RIGHT | Image.FLIP_TOP_BOTTOM |
Image.ROTATE_180 | Image.ROTATE_90 |
Image.ROTATE_270 | 元画像 |
Image.TRANSPOSE | Image.TRANSVERSE |
ImageOpsモジュールのmirror(左右反転)とflip(上下反転)
ImageOpsモジュールにも、左右反転(mirror)と上下反転(flip)の関数があります。
こちらの方が関数名的には覚えやすいでしょうか?
(サンプル)
from PIL import Image
from PIL import ImageOps
# 画像を開く
img = Image.open("image.jpg")
# 左右反転
img_mirror = ImageOps.mirror(img)
# 画像の保存
img_mirror.save("image_mirror.jpg")
# 上下反転
img_flip = ImageOps.flip(img)
# 画像の保存
img_flip.save("image_flip.jpg")
(実行結果)
ImageOps.mirror() | ImageOps.flip() |
参考
Image Module
The Image module provides a class with the same name which is used to represent a PIL image. The module also provides a ...
ImageOps Module
The ImageOps module contains a number of ‘ready-made’ image processing operations. This module is somewhat experimental,...
【Python/Pillow(PIL)】画像の回転
Pillowで画像(画像データ)を拡大/縮小するには、Imageクラスのrotateメソッドを用います。 構文 Image.rotate(angle, resample=0, expand=0, center=None, translate...
コメント
[…] 【Python/Pillow(PIL)】画像の上下左右反転、90°ごとの回転 […]
[…] 【Python/Pillow(PIL)】画像の上下左右反転、90°ごとの回転 […]