1.9 KiB
1.9 KiB
微信头像批量合成主界面图片——实现思路
需求拆解
- 读取主界面截图
- 路径:
./微信无头像主界面截图/ - 每张图片尺寸:2560x1527 px
- 路径:
- 读取头像素材
- 路径:
./微信头像素材/
- 路径:
- 确定头像合成区域
- 区域基准点:左上角 (x=8, y=31)
- 区域尺寸:宽75,高70
- 头像素材处理
- 每张头像素材需缩放/裁剪为 54x54 px
- 头像合成
- 将处理后的头像粘贴到主界面截图的指定区域(左上角 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)处
- 头像尺寸为54x54,区域为75x75,允许的偏移范围:
- 合成后图片命名规则:
avatar_01_实际x-实际y_55x55.jpg- avatar_01:头像文件名+序号
- 实际x-实际y:本次随机偏移后的左上角坐标
- 55x55:头像尺寸
- 输出
- 合成图片保存到
./output/目录
- 合成图片保存到
实现流程
- 遍历主界面截图文件夹,读取每张主界面图片
- 遍历头像素材文件夹,读取每张头像图片
- 对每张头像图片:
- 缩放/裁剪为 54x54 px
- 随机生成偏移坐标,将头像粘贴到每张主界面图片的 (8, 31, 75x75) 区域内
- 记录实际坐标,生成合成图片,按命名规则保存到 output 目录
- 可选:批量处理,支持多线程/进度提示
技术选型
- 使用 Python 的 Pillow (PIL) 库进行图片读取、缩放、粘贴和保存
- 使用 os/pathlib 遍历文件夹
- 兼容 jpg/png 格式
注意事项
- 头像素材尺寸不一时,需等比缩放后居中裁剪为 54x54
- 合成区域如有特殊对齐需求可调整
- 文件命名需防止重名覆盖