import os from PIL import Image, ImageDraw, ImageFont # 設定 OUTPUT_DIR = "assets/ogp" # 保存先フォルダ FONT_PATH = "YuseiMagic-Regular.ttf" # 使うフォントファイルのパス(適宜変更) BG_PATH = "base_bg.png" # 背景画像のパス FONT_SIZE = 80 # メンバーリスト members = ["かほ", "さや", "こず", "るり", "めぐ", "つづ", "ぎん", "すず", "ひめ", "せら", "いず", "さち"] # フォルダ作成 os.makedirs(OUTPUT_DIR, exist_ok=True) def generate_images(): # 背景の読み込み base = Image.open(BG_PATH).convert("RGBA") width, height = base.size # フォントの設定 try: font = ImageFont.truetype(FONT_PATH, FONT_SIZE) except: print("フォントが見つからないためデフォルトを使用します") font = ImageFont.load_default() count = 0 for m1 in members: for m2 in members: if m1 == m2: continue # ペア名の決定 pair_name = f"{m1}{m2}" # 画像のコピー作成 img = base.copy() draw = ImageDraw.Draw(img) # テキストの配置(中央揃え) # ※ Pillowのバージョンにより textbbox か textsize を使い分けます bbox = draw.textbbox((0, 0), pair_name, font=font) text_w = bbox[2] - bbox[0] text_h = bbox[3] - bbox[1] position = ((width - text_w) // 2, (height - text_h) // 2 - 10) # 文字の描画(黒色) draw.text(position, pair_name, font=font, fill=(0, 0, 0)) # 保存 (ファイル名はペア名) img.save(f"{OUTPUT_DIR}/{pair_name}.png") count += 1 print(f"Generated: {pair_name}.png") print(f"完了!合計 {count} 枚の画像を生成しました。") if __name__ == "__main__": generate_images()