【Python】画像のリサイズを一括処理(サイズ変更:大きさ:アスペクト比指定:比率:拡大や縮小等)方法【フォルダ内のすべてや複数】、 【Pillow, tkinter, os】 | ウルトラフリーダム

【Python】画像のリサイズを一括処理(サイズ変更:大きさ:アスペクト比指定:比率:拡大や縮小等)方法【フォルダ内のすべてや複数】、 【Pillow, tkinter, os】

本サイトでは記事内に広告が含まれています。

この記事では、】画像のリサイズを一括処理(大きさ変更:アスペクト比指定:比率:拡大や縮小等)方法【フォルダ内のすべてや複数】、 【Pillow, tkinter, os】について解説していきます。

ポイントとしては、

Pillowライブラリでの画像処理

tkinterを使用したファイル選択ダイアログ

などの利用です。

初心者の方でもわかりやすいように、変数名を少々変わった名称(例:hensuu)にしていますので、実際に使用時には適切な英語表記などにしてくださいませ。

それでは詳しく見ていきましょう!

 

 

スポンサーリンク

Pythonでフォルダ内のすべてのpng画像の大きさを指定し一括変更する方法(アスペクト比も16:9に変更)

それではまず、フォルダ内のすべてのpng画像の大きさを指定し、アスペクト比も16:9に一括で変更する方法について解説していきます。

jupyter notebookなどの各開発環境を開いて、以下コードをコピペしましょう。


import os
from PIL import Image

# 画像が保存されているフォルダのパス
directory = 'path/to/images'

# 出力する画像のアスペクト比を16:9に設定
aspect_ratio = 16 / 9

for filename in os.listdir(directory):
    if filename.endswith(".png"):
        # ファイルのフルパスを取得
        img_path = os.path.join(directory, filename)
        with Image.open(img_path) as img:
            # 元の画像のアスペクト比を計算
            original_width, original_height = img.size
            original_aspect = original_width / original_height

            # 目的のアスペクト比に基づいてサイズを調整
            if original_aspect < aspect_ratio:
                new_height = int(original_width / aspect_ratio)
                new_width = original_width
            else:
                new_width = int(original_height * aspect_ratio)
                new_height = original_height

            # 画像を中央でクロップしてリサイズ
            img_resized = img.resize((new_width, new_height), Image.ANTIALIAS)
            # リサイズした画像を保存
            img_resized.save(img_path)

このコードでは、まず指定されたディレクトリ内の全てのpng画像に対して処理を行います。

画像を開き、指定したアスペクト比に合わせてサイズを調整しています。

pythonで一括処理できると本当に快適なものです(^^)/

 

【使用関数名】os.listdir, os.path.join, Image.open, img.resize, img.save

 

 

Pythonでダイアログで指定した複数のjpeg画像の一括で1.5倍に拡大リサイズする方法(アスペクト比は元のまま)

続いては、ダイアログで指定した複数のjpeg画像を一括で1.5倍に拡大リサイズする方法(アスペクト比は元のまま)について解説していきます。

縮小する場合は、上の拡大比率1.5倍を適宜、小さいものにご変更くださいませ。

jupyter notebookなどの各開発環境を開いて、以下コードをコピペしましょう。


from tkinter import filedialog
from tkinter import Tk
from PIL import Image
import os

# ダイアログを表示してファイル選択
root = Tk()
root.withdraw()  # Tkのルートウィンドウを非表示
file_paths = filedialog.askopenfilenames(
    title='画像ファイルを選択してください',
    filetypes=[('JPEG files', '*.jpg'), ('JPEG files', '*.jpeg')]
)

# 選択したファイルごとにリサイズ処理
for img_path in file_paths:
    with Image.open(img_path) as img:
        # 画像サイズを1.5倍に設定
        new_width = int(img.width * 1.5)
        new_height = int(img.height * 1.5)
        # リサイズして保存
        img_resized = img.resize((new_width, new_height), Image.ANTIALIAS)
        # 新しいファイル名を生成
        dirname, filename = os.path.split(img_path)
        new_filename = f"resized_{filename}"
        img_resized.save(os.path.join(dirname, new_filename))

このコードでは、tkinterのファイル選択ダイアログを使用してユーザーが画像ファイルを選択できるようにしています。

選択した画像は、指定された倍率でサイズが変更され、元のアスペクト比を保ったままリサイズされます。リサイズした画像は新しいファイル名で保存されます。

この方法を使えば、複数の画像を一度に簡単にリサイズすることができます。

 

【使用関数名】filedialog.askopenfilenames, Image.open, img.resize, img.save

 

まとめ Pythonで画像の大きさ変更(アスペクト比指定:比率:拡大や縮小:一括等)方法【フォルダ内のすべてや複数】、 【Pillow, tkinter, os】

この記事では、】画像のリサイズを一括処理(大きさ変更:アスペクト比指定:比率:拡大や縮小等)方法【フォルダ内のすべてや複数】、 【Pillow, tkinter, os】について確認しました。

Pythonの扱いに慣れ、さらに快適な生活を送っていきましょう!!

 

コメント

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