この記事では、】画像のリサイズを一括処理(大きさ変更:アスペクト比指定:比率:拡大や縮小等)方法【フォルダ内のすべてや複数】、 【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の扱いに慣れ、さらに快適な生活を送っていきましょう!!
コメント