画像の周りの不要な余白(黒、白)を削除するコード
from PIL import Image, ImageChops
import os
def crop_images(input_folder, output_folder, bg_color):
# 背景色のRGB値を決定
if bg_color == 'black':
bg_rgb = (0, 0, 0)
elif bg_color == 'white':
bg_rgb = (255, 255, 255)
else:
print(f"無効な背景色です: {bg_color}")
return
# フォルダ内の画像ファイルを読み込み、トリミングして保存
for filename in os.listdir(input_folder):
filepath = os.path.join(input_folder, filename)
with Image.open(filepath) as img:
# 背景色の抽出
bg_img = Image.new('RGB', img.size, bg_rgb)
# 差分画像の生成
diff_img = ImageChops.difference(img, bg_img)
# クロップ範囲の計算
crop_range = diff_img.convert('RGB').getbbox()
# クロップの実行と出力 画像を保存
crop_img = img.crop(crop_range)
output_filepath = os.path.join(output_folder, filename)
try:
crop_img.save(output_filepath)
except Exception as e:
print(f"画像の保存に失敗しました: {filename}, {e}")
# 画像があるフォルダを指定
input_folder = "input_folder"
# トリミングした画像を保存するフォルダを指定
output_folder = "output_folder"
# 背景色を選択
bg_color = input("背景色を選択してください(black/white):")
# 関数を呼び出して画像をトリミング
crop_images(input_folder, output_folder, bg_color)
print("保存しました")