Pythonで画像を一括リサイズ&フォーマット変換|PillowでJPEG→PNGに簡単変換

はじめに

ブログやWebサイトに画像をアップする前、「サイズを統一したいな〜」とか「JPEGじゃなくてPNGに変換したい」って思ったことありませんか?

手作業で1枚ずつやるのは正直めんどくさい…。そんなときに役立つのが、Pythonで一括変換・リサイズできるスクリプトです!

今回は、画像を800×800にリサイズしながらJPEG→PNGに変換して保存する方法をご紹介します📸


やりたいこと

  1. フォルダ内の画像を一括処理

  2. JPEG形式の画像をPNGに変換

  3. サイズを800×800にリサイズ

  4. 変換後の画像を別フォルダに保存


準備するもの

ライブラリ

  • Pillow(画像処理)

  • os(ファイル操作)

  • glob(ファイルパス取得)

インポート手順

bash
pip install Pillow

このライブラリの説明

  • Pillow:画像の開く・保存・リサイズ・フォーマット変換などができるPythonの定番ライブラリ。

  • os:ディレクトリの作成やパス結合など、ファイル操作に便利。

  • glob:特定の拡張子を持つファイルだけを一括で取得できる。


ディレクトリ構成

以下のようなフォルダ構成を想定しています:

project_folder/
├── input_images/ ← 元画像(JPEGなど)
├── output_images/ ← 加工済みの画像(PNG)
└── resize_convert.py ← スクリプト

コードスクリプト

コードスクリプトの概要

  • input_images/内のJPEG画像をすべて取得

  • 800×800にリサイズ

  • PNG形式でoutput_images/に保存

コード全文

 

from PIL import Image
import os
import glob
# 入出力フォルダ
input_folder = 'input_images'
output_folder = 'output_images'
target_size = (800, 800)

# 出力フォルダがなければ作成
os.makedirs(output_folder, exist_ok=True)

# JPEG画像をすべて取得
image_paths = glob.glob(os.path.join(input_folder, '*.jpg')) + glob.glob(os.path.join(input_folder, '*.jpeg'))

for img_path in image_paths:
with Image.open(img_path) as img:
# リサイズ
img_resized = img.resize(target_size)

# 新しいファイル名を作成(拡張子をPNGに)
base_name = os.path.splitext(os.path.basename(img_path))[0]
new_filename = base_name + '.png'
output_path = os.path.join(output_folder, new_filename)

# PNG形式で保存
img_resized.save(output_path, 'PNG')
print(f"{new_filename} を保存しました。")


実行結果

例えば以下のようなJPEG画像が input_images/ にあったとすると…

test1.jpg, test2.jpg

実行後は output_images/ に以下のPNGファイルが出力されます:

test.png, test2.png

もサイズは800×800に統一されています


コード解説

  • glob.glob().jpg.jpegをまとめて取得してます(大文字も処理したい場合は拡張すればOK)。

  • Image.resize()でサイズ変更。

  • os.path.splitext()で拡張子を除いた名前を取得。

  • .save()時に'PNG'を指定することで、フォーマット変換。


注意点

  • 画像のアスペクト比は無視して強制的に800×800になります。歪みが気になる場合はthumbnail()を使う方法もあります。

  • input_images/にJPEG以外の画像があると処理されません。

  • PNG変換時、透過には対応していません(元画像が透過PNGでない場合)。


まとめ

画像の一括リサイズ&形式変換は、PythonとPillowでとっても簡単にできます。
「社内報用に統一した画像が欲しい」とか、「ブログ用の画像を軽く加工したい」ときにめっちゃ便利です。

一度スクリプトを書いておけば、次回からはドラッグ&ドロップして実行するだけ
画像編集の手間がかなり減りますよ〜!

コメント

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