Pillow(PIL)

【Python/Pillow(PIL)】画像の上下左右反転、90°ごとの回転

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")

(実行結果)

画像の上下左右反転、90°ごとの回転 画像の上下左右反転、90°ごとの回転
元画像 左右反転(Image.FLIP_LEFT_RIGHT)

上下左右、回転の種類

methodに指定する種類は以下の通りです。

画像の上下左右反転、90°ごとの回転 Image.FLIP_LEFT_RIGHT
Image.FLIP_LEFT_RIGHT Image.FLIP_TOP_BOTTOM
画像の上下左右反転、90°ごとの回転 Image.FLIP_LEFT_RIGHT
Image.ROTATE_180 Image.ROTATE_90
画像の上下左右反転、90°ごとの回転 画像の上下左右反転、90°ごとの回転
Image.ROTATE_270 元画像
画像の上下左右反転、90°ごとの回転 画像の上下左右反転、90°ごとの回転
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")

(実行結果)

画像の上下左右反転、90°ごとの回転 画像の上下左右反転、90°ごとの回転
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 number of factory functions, including f...
ImageOps Module
The ImageOps module contains a number of ‘ready-made’ image processing operations. This module is somewhat experimental, and most operators only work on L and R...
【Python/Pillow(PIL)】画像の回転
Pillowで画像(画像データ)を拡大/縮小するには、Imageクラスのrotateメソッドを用います。 構文 Image.rotate(angle, resample=0, expand=0, center=None, t...

コメント

  1. […] 【Python/Pillow(PIL)】画像の上下左右反転、90°ごとの回転 […]

  2. […] 【Python/Pillow(PIL)】画像の上下左右反転、90°ごとの回転 […]

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