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

48 lines
1.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 微信头像批量合成主界面图片——实现思路
## 需求拆解
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
- 合成区域如有特殊对齐需求可调整
- 文件命名需防止重名覆盖