Spaces:
Sleeping
Sleeping
| 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() |