derive_mark.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. # 按规格书 §6「去字标版」配方派生悬浮球专用图(可复现)
  2. # 源:FluxRpa_512_114R.png 产物:FluxRpa_mark_only_412_悬浮球去字标版.png(412×412,白底)
  3. from PIL import Image
  4. SRC = r"E:/渡梦星舟/飞舟图标/FluxRpa_512_114R.png"
  5. DST = r"E:/渡梦星舟/品牌资产/FluxRpa_mark_only_412_悬浮球去字标版.png"
  6. im = Image.open(SRC).convert("RGBA")
  7. print("源尺寸:", im.size)
  8. # ① 透明像素填白(保留图标白底观感)
  9. white = Image.new("RGBA", im.size, (255, 255, 255, 255))
  10. white.alpha_composite(im)
  11. im = white
  12. # ② 抹掉字标:实测分界 y=331(该行彩色像素数为 0),331 行以下全部填白
  13. px = im.load()
  14. w, h = im.size
  15. for y in range(331, h):
  16. for x in range(w):
  17. px[x, y] = (255, 255, 255, 255)
  18. print("已抹掉 y>=331 的字标")
  19. # ③ 以标记 bbox 中心 (255.5, 213) 为中心做边长 412 的正方形裁切
  20. cx, cy, side = 255.5, 213.0, 412
  21. left, top = int(cx - side / 2), int(cy - side / 2)
  22. box = (left, top, left + side, top + side)
  23. out = im.crop(box)
  24. print("裁切框:", box, "产物尺寸:", out.size)
  25. import os
  26. os.makedirs(os.path.dirname(DST), exist_ok=True)
  27. out.save(DST, "PNG")
  28. print("已交付:", DST)