49 lines
2.7 KiB
Python
49 lines
2.7 KiB
Python
|
|
# -*- coding: utf-8 -*-
|
||
|
|
# 2026-10-02 PD 지시(자율 반복) — PD 가 직접 동그라미 친 그림만 모아 "합격 기준 시트"를 만든다. 검토 담당(사람 · 에이전트)이 새 그림을 고를 때 이 시트를 기준으로 삼는다.
|
||
|
|
# python icon_approved_sheet.py
|
||
|
|
# 목록은 PD 가 고른 그대로다(1차 = a1 시트의 동그라미 7장 · 2차 = final_sheet 의 동그라미 8장). PD 가 새로 고르면 여기에 더한다.
|
||
|
|
import os
|
||
|
|
from PIL import Image, ImageDraw
|
||
|
|
|
||
|
|
HERE = os.path.dirname(os.path.abspath(__file__))
|
||
|
|
A1 = r"C:\Users\sw\AppData\Local\Temp\claude\E--BurningTimes\87b07a14-ef05-46d9-b47a-a879d51eee93\scratchpad\moba_anfg"
|
||
|
|
OUT = os.path.join(HERE, "moba_anfg", "approved")
|
||
|
|
PICKS = [
|
||
|
|
# (출력 이름, 원본 경로)
|
||
|
|
("pd1_ring", os.path.join(A1, "a1_ring_s10_0.png")),
|
||
|
|
("pd1_helmet", os.path.join(A1, "a1_helmet_s07_0.png")),
|
||
|
|
("pd1_gloves_a", os.path.join(A1, "a1_gloves_s07_1.png")),
|
||
|
|
("pd1_gloves_b", os.path.join(A1, "a1_gloves_s10_0.png")),
|
||
|
|
("pd1_armor", os.path.join(A1, "a1_armor_s07_1.png")),
|
||
|
|
("pd1_necklace", os.path.join(A1, "a1_necklace_s07_0.png")),
|
||
|
|
("pd1_boots", os.path.join(A1, "a1_boots_s10_0.png")),
|
||
|
|
("pd2_armor", os.path.join(HERE, "moba_anfg", "final", "armor_a.png")),
|
||
|
|
("pd2_boots", os.path.join(HERE, "moba_anfg", "final", "boots_a.png")),
|
||
|
|
("pd2_dagger", os.path.join(HERE, "moba_anfg", "final", "dagger_c.png")),
|
||
|
|
("pd2_magicdagger", os.path.join(HERE, "moba_anfg", "final", "magicdagger_b.png")),
|
||
|
|
("pd2_necklace", os.path.join(HERE, "moba_anfg", "final", "necklace_a.png")),
|
||
|
|
("pd2_ring", os.path.join(HERE, "moba_anfg", "final", "ring_c.png")),
|
||
|
|
("pd2_shield", os.path.join(HERE, "moba_anfg", "final", "shield_b.png")),
|
||
|
|
("pd2_sword", os.path.join(HERE, "moba_anfg", "final", "sword_a.png")),
|
||
|
|
]
|
||
|
|
|
||
|
|
|
||
|
|
def main():
|
||
|
|
os.makedirs(OUT, exist_ok=True)
|
||
|
|
cell, pad, cols = 256, 4, 5
|
||
|
|
rows = (len(PICKS) + cols - 1) // cols
|
||
|
|
sheet = Image.new("RGB", (cols * (cell + pad) + pad, rows * (cell + pad) + pad), (24, 24, 28))
|
||
|
|
draw = ImageDraw.Draw(sheet)
|
||
|
|
for i, (name, path) in enumerate(PICKS):
|
||
|
|
im = Image.open(path).convert("RGBA")
|
||
|
|
im.save(os.path.join(OUT, name + ".png")) # 원본을 합격본 폴더에 사본으로 모아 둔다(scratchpad 는 사라질 수 있다)
|
||
|
|
bg = Image.new("RGB", (cell, cell), (40, 40, 46)); small = im.resize((cell, cell), Image.LANCZOS); bg.paste(small, (0, 0), small)
|
||
|
|
x, y = pad + (i % cols) * (cell + pad), pad + (i // cols) * (cell + pad)
|
||
|
|
sheet.paste(bg, (x, y)); draw.text((x + 3, y + 2), name, fill=(220, 220, 220))
|
||
|
|
sheet.save(os.path.join(OUT, "approved_sheet.png"))
|
||
|
|
print("approved %d -> %s" % (len(PICKS), OUT))
|
||
|
|
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
main()
|