2025-07-15 11:03:36 +08:00
2025-07-15 11:02:33 +08:00
2025-07-15 11:02:33 +08:00
2025-07-15 11:02:33 +08:00

微信头像批量合成主界面图片——实现思路

需求拆解

  1. 读取主界面截图
    • 路径:./微信无头像主界面截图/
    • 每张图片尺寸2560x1527 px
  2. 读取头像素材
    • 路径:./微信头像素材/
  3. 确定头像合成区域
    • 区域基准点:左上角 (x=8, y=31)
    • 区域尺寸宽75高70
  4. 头像素材处理
    • 每张头像素材需缩放/裁剪为 54x54 px
  5. 头像合成
    • 将处理后的头像粘贴到主界面截图的指定区域(左上角 x=8, y=31区域内随机偏移区域宽高为75x75
    • 粘贴算法:
      • 头像尺寸为54x54区域为75x75允许的偏移范围
        • x: [8, 8+75-54] = [8, 29]
        • y: [31, 31+75-54] = [31, 52]
      • 每次随机生成x、y偏移值将头像贴到(x, y)处
    • 合成后图片命名规则:
      • avatar_01_实际x-实际y_55x55.jpg
        • avatar_01头像文件名+序号
        • 实际x-实际y本次随机偏移后的左上角坐标
        • 55x55头像尺寸
  6. 输出
    • 合成图片保存到 ./output/ 目录

实现流程

  1. 遍历主界面截图文件夹,读取每张主界面图片
  2. 遍历头像素材文件夹,读取每张头像图片
  3. 对每张头像图片:
    • 缩放/裁剪为 54x54 px
    • 随机生成偏移坐标,将头像粘贴到每张主界面图片的 (8, 31, 75x75) 区域内
    • 记录实际坐标,生成合成图片,按命名规则保存到 output 目录
  4. 可选:批量处理,支持多线程/进度提示

技术选型

  • 使用 Python 的 Pillow (PIL) 库进行图片读取、缩放、粘贴和保存
  • 使用 os/pathlib 遍历文件夹
  • 兼容 jpg/png 格式

注意事项

  • 头像素材尺寸不一时,需等比缩放后居中裁剪为 54x54
  • 合成区域如有特殊对齐需求可调整
  • 文件命名需防止重名覆盖
Description
微信头像批量合成
Readme 60 MiB
Languages
Python 100%