Skip to content

Python の Pillow で画像ファイルのサイズ (縦/横) を取得する

Python で pillow を使って画像イメージのサイズを取得するサンプルをメモしておきます。 テストは Rocky Linux 8 上で行いました。

Python のインストール

Python をインストールしておきます。

1
2
dnf install -y python39
alternatives --set python /usr/bin/python3.9

venv の作成

作業用に venv 環境を作成し、Pillow をインストールします。

1
2
3
4
5
mkdir sample1
cd sample1
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip Pillow

テスト用 画像イメージの取得

テストは Sample Files Download で公開されているものを利用させて頂きます。

1
2
curl -o sample.png https://www.learningcontainer.com/wp-content/uploads/2020/08/Sample-Small-Image-PNG-file-Download.png
curl -o sample.jpg https://www.learningcontainer.com/wp-content/uploads/2020/07/Sample-JPEG-Image-File-Download.jpg

file コマンドで確認すると画像サイズは以下になっていました。

1
2
3
4
# file sample.jpg
sample.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 5600x4200, frames 3
# file sample.png
sample.png: PNG image data, 4000 x 3000, 8-bit colormap, non-interlaced

サンプルスクリプト (チュートリアルから抜粋)

Pillow のチュートリアル に掲載されているサンプルスクリプトをそのまま利用します。

1
2
3
4
5
6
7
8
9
import sys
from PIL import Image

for infile in sys.argv[1:]:
    try:
        with Image.open(infile) as im:
            print(infile, im.format, f"{im.size}x{im.mode}")
    except OSError:
        pass

実行結果は以下の通りです。

JPG

1
2
# python pillow1.py sample.jpg
sample.jpg JPEG (5600, 4200)xRGB

PNG

1
2
# python pillow1.py sample.png
sample.png PNG (4000, 3000)xP