cp-oracle-dev / generate_ogp.py
Nyanpre's picture
Create generate_ogp.py
6db7163 verified
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()