日本の山岳一覧・百名山 API を開発しましたCLICK !

Pythonライブラリ Pillow で画像をリサイズしてWebPに変換する

Python PillowでリサイズとWebP変換
  • URLをコピーしました!

一括で画像ファイルをリサイズしてWebPに変換します。

Pillowで画像を画像ファイルをリサイズしてWebPに変換する

  1. pip で Pillow をインストール
  2. resize() で画像をリサイズする
  3. save() で拡張子を.webpに変更して画像を保存する
目次

画像処理ライブラリ Pillow

PIL と Pillow

PIL(Python Imaging Library)は、2011年まで開発が進められていた画像処理ライブラリです。
そして、現在では開発が停止しています。

そんなPILをフォークして作られた画像処理ライブラリが Pillow です。

各種形式の画像ファイルの読み込み・操作・保存を行う機能が提供されています。

pip インストール

以下のコマンドでライブラリをインストールします。

pip install pillow

Pillowで画像をリサイズしてWebPに変換する

ソースコード

from PIL import Image
import glob, os
import sys

# 変換したい画像フォーマット
IMG_FORMAT = 'webp'

# 圧縮品質
COMPRESS_QUALITY = 65

# 変換前の画像を格納したフォルダ名
ORIGINAL_IMG_DIR = 'original/'
# 変換後の画像を格納したフォルダ名
CONV_IMG_DIR = 'convert/'

# 格納先フォルダがなければ作成する
os.makedirs(CONV_IMG_DIR, exist_ok=True)

# 画像を取得する
files = glob.glob(ORIGINAL_IMG_DIR + '*.jpg')

# 画像をリサイズしてwebpにして保存する
for file in files:
    file_name = os.path.splitext(os.path.basename(file))[0]
    img = Image.open(file).convert('RGB')
    # 半分のサイズにリサイズします(整数指定)
    resized_img = img.resize((img.width//2, img.height//2))
    # 拡張子を変更して保存
    resized_img.save(CONV_IMG_DIR + file_name + '.' + IMG_FORMAT, quality=COMPRESS_QUALITY)

実行手順

画像をoriginalフォルダに格納する

対象のJPEG画像をimg-resize.pyファイルと同階層のoriginalフォルダに格納しておきます

img-resize.pyを実行します
python img-resize.py
WebP画像がconvフォルダに格納されます

半分のサイズにリサイズされたWebP画像が保存されていることを確認しましょう

補足

COMPRESS_QUALITYは調整してください。

低いほど、圧縮され容量が小さくなります。

まとめ

ブログに画像を上げる際など、大量の画像を小さくしたい時に役立つかなと思います。

大量の画像を一括でリサイズと同時にWebPに変換したかったのでPythonを活用してみました!

圧縮やWebPに変換したい場合は、以下のサイトを使ってみるのもありです。

SquooshはUIがオシャレです。単体画像であれば、Squooshがおすすめです!

Pillowを使った画像の生成やリサイズについては、以下の記事を参考にしてみてください

Python PillowでリサイズとWebP変換

この記事が気に入ったら
フォローしてね!

  • URLをコピーしました!

コメント

コメントする

目次