# 黄历图片制作标准（V2 紧凑版）

> **创建日期**: 2026-04-07 18:45  
> **更新日期**: 2026-04-09 15:25  
> **适用范围**: 每日黄历图片生成  
> **遵循原则**: 做事有依据，做事按依据，做事留记录  
> **最新版本**: V2.0.0 (Almanac Creator)

---

## 📐 图片规格标准

### 基础参数

| 参数 | 值 | 说明 |
|------|-----|------|
| **宽度** | 1080 像素 | 适配手机竖屏 |
| **高度** | 1400 像素 | 内容舒展不拥挤 |
| **比例** | 9:12.96 | 接近 9:13 竖版 |
| **格式** | PNG | 高质量无损压缩 |
| **质量** | 95 | 平衡文件大小与质量 |
| **文件大小** | 150-250 KB/页 | 适合网络传播 |

### 背景与边框

```python
# 背景色
BACKGROUND_COLOR = '#F8F0E6'  # 温暖的米黄色（宣纸质感）

# 双层边框
外层边框：8px 中国红 (#8B0000)
内层边框：2px 金色 (#D4AF37)
边距：外层 10px，内层 22px
```

---

## 📝 字体标准

### 字体层级

| 用途 | 字号 | 字重 | 颜色 | 示例 |
|------|------|------|------|------|
| **主标题** | 90px | 粗体 | #8B0000 | 每日黄历 |
| **副标题** | 65px | 常规 | #2C2C2C | 2026 年 4 月 7 日 星期二 |
| **栏目题** | 55px | 常规 | #8B0000 | 今日宜/生肖运势 |
| **正文** | 45px | 常规 | #2C2C2C | 宜忌内容 |
| **小字** | 38px | 常规 | #999999 | 底部信息/科普 |

### 字体选择

```python
# 优先使用 Windows 黑体
font = ImageFont.truetype('C:/Windows/Fonts/simhei.ttf', size)

# Mac/Linux 备选
font = ImageFont.truetype('/System/Library/Fonts/PingFang.ttc', size)
font = ImageFont.truetype('/usr/share/fonts/noto-cjk/NotoSansCJK-Regular.ttc', size)

# 兜底方案
font = ImageFont.load_default()
```

---

## 🎨 颜色标准

### 主色调

| 颜色 | 色值 | 用途 |
|------|------|------|
| **中国红** | #8B0000 | 标题、边框、重点信息 |
| **亮红色** | #C41E3A | 宜/红榜/强调内容 |
| **墨黑色** | #2C2C2C | 正文、日期、常规信息 |
| **金色** | #D4AF37 | 边框、分隔线、装饰 |
| **米黄色** | #F8F0E6 | 背景色 |
| **浅灰色** | #999999 | 底部信息、辅助说明 |
| **极浅灰** | #CCCCCC | 日期信息 |

### 颜色使用原则

```
主色（中国红）：标题、边框、栏目题
强调色（亮红色）：宜、红榜、重要提示
正文色（墨黑色）：忌、黑榜、常规内容
装饰色（金色）：分隔线、内边框
背景色（米黄色）：画布背景
辅助色（灰色）：底部信息、免责声明
```

---

## 📋 内容布局标准

### 第 1 页：封面 + 宜忌 + 生肖

```
┌─────────────────────────────────┐
│         每日黄历（90px）          │  ← y=50
│    2026 年 4 月 7 日 星期二 (65px) │  ← +15px
│      农历丙午年 二月二十 (55px)   │  ← +10px
│   世界卫生日 | 清明第 2 天 (38px)   │  ← +10px
├─────────────────────────────────┤  ← 分隔线 +35px
│          今日宜（55px）           │  ← +20px
│   祭祀 祈福 出行 订婚... (45px)   │  ← +10px
│   安葬 作灶 求财... (45px)       │  ← +25px
│          今日忌（55px）           │  ← +15px
│   动土 破土 开光... (45px)       │  ← +25px
├─────────────────────────────────┤  ← 分隔线 +35px
│      今日生肖运势（55px）         │  ← +20px
│       红榜生肖（45px）            │  ← +15px
│   🥇 生肖兔：六合吉日... (45px)   │  ← +10px
│   🥈 生肖羊：三合助力... (45px)   │  ← +10px
│   🥉 生肖虎：寅亥相合... (45px)   │  ← +20px
│       黑榜生肖（45px）            │  ← +15px
│   生肖鼠：子午相冲... (45px)     │  ← +10px
│   生肖蛇：巳亥相冲... (45px)     │  ← +10px
│   生肖猴：申亥相害... (45px)     │  ← +30px
├─────────────────────────────────┤  ← 分隔线 +25px
│   传统文化 仅供参考 (38px)        │  ← +10px
│   2026 年 4 月 7 日 星期二 (38px)   │
└─────────────────────────────────┘
```

### 第 2 页：财神 + 养生

```
┌─────────────────────────────────┐
│        财神方位（55px）           │  ← y=60
│      喜神：西南方 (45px)          │  ← +20px
│      福神：西北方 (45px)          │  ← +10px
│      财神：正东方 (45px)          │  ← +10px
│   胎神：占门床外正南 (45px)       │  ← +25px
├─────────────────────────────────┤  ← 分隔线 +35px
│        春季养生（55px）           │  ← +25px
│       饮食调养（45px）            │  ← +15px
│   宜吃：菠菜 芹菜... (45px)       │  ← +10px
│   菊花茶 (45px)                  │  ← +10px
│   忌吃：辛辣 油炸... (45px)       │  ← +20px
│       运动建议（45px）            │  ← +15px
│   早晨散步太极... (45px)         │  ← +10px
│   下午健身游泳 (45px)            │  ← +20px
│       作息建议（45px）            │  ← +15px
│   22:30 前入睡... (45px)          │  ← +30px
├─────────────────────────────────┤  ← 分隔线 +25px
│   传统文化 仅供参考 (38px)        │  ← +10px
│   2026 年 4 月 7 日 星期二 (38px)   │
└─────────────────────────────────┘
```

### 第 3 页：科普 + 故事

```
┌─────────────────────────────────┐
│        黄历科普（55px）           │  ← y=60
│   【辛亥日】天干辛... (38px)      │  ← +20px
│   【冲煞】亥日冲蛇... (38px)      │  ← +8px
│   【胎神】门床外正南... (38px)    │  ← +8px
│   【吉神】天恩 母仓... (38px)     │  ← +8px
│   【凶神】游祸 天贼... (38px)     │  ← +15px
├─────────────────────────────────┤  ← 分隔线 +35px
│  传统故事·清明节由来（55px）      │  ← +20px
│   春秋时期，晋国公子... (38px)    │  ← +5px/行
│   大臣介子推始终追随... (38px)    │
│   ... (共 8 行)                   │
│   启示：忠诚、廉洁、气节 (45px)   │  ← +15px
├─────────────────────────────────┤  ← 分隔线 +25px
│   传统文化 仅供参考 (38px)        │  ← +10px
│   2026 年 4 月 7 日 星期二 (38px)   │
└─────────────────────────────────┘
```

---

## 🛠️ 制作流程标准

### 步骤 1：准备数据

```python
# 获取黄历数据
date_gregorian = "2026 年 4 月 7 日 星期二"
date_lunar = "农历丙午年 二月二十"
special_day = "世界卫生日 | 清明节气第 2 天"

yi_content = "祭祀 祈福 出行 订婚 嫁娶..."
ji_content = "动土 破土 开光 词讼..."

zodiac_red = ["兔：六合吉日", "羊：三合助力", "虎：寅亥相合"]
zodiac_black = ["鼠：子午相冲", "蛇：巳亥相冲", "猴：申亥相害"]
```

### 步骤 2：创建画布

```python
from PIL import Image, ImageDraw, ImageFont

WIDTH = 1080
PAGE_HEIGHT = 1400
BACKGROUND_COLOR = '#F8F0E6'

img = Image.new('RGB', (WIDTH, PAGE_HEIGHT), BACKGROUND_COLOR)
draw = ImageDraw.Draw(img)

# 绘制双层边框
draw.rectangle([10, 10, WIDTH-10, PAGE_HEIGHT-10], 
               outline='#8B0000', width=8)
draw.rectangle([22, 22, WIDTH-22, PAGE_HEIGHT-22], 
               outline='#D4AF37', width=2)
```

### 步骤 3：绘制内容

```python
# 居中绘制函数
def draw_centered_text(draw, text, y, font, color):
    bbox = draw.textbbox((0, 0), text, font=font)
    width = bbox[2] - bbox[0]
    x = (WIDTH - width) / 2
    draw.text((x, y), text, fill=color, font=font)
    return y + bbox[3] - bbox[1] + 5

# 按布局标准逐行绘制
y = 50  # 起始位置
y = draw_centered_text(draw, "每日黄历", y, font_title, '#8B0000') + 15
y = draw_centered_text(draw, date_gregorian, y, font_subtitle, '#2C2C2C') + 10
# ... 继续绘制其他内容
```

### 步骤 4：添加分隔线

```python
# 金色分隔线
draw.line([(80, y), (WIDTH-80, y)], fill='#D4AF37', width=2)
y += 35  # 分隔线后留白
```

### 步骤 5：保存文件

```python
import os

output_dir = "C:/Users/liuyan/.openclaw/workspace/reports"
filename = f"{date}_黄历_V2.png"  # 例如：2026-04-07_黄历_V2.png
path = os.path.join(output_dir, filename)

img.save(path, 'PNG', quality=95)
print(f"[OK] Saved: {path}")
```

---

## 📁 文件命名标准

### 命名格式

```
{日期}_黄历 [_页面].png

示例:
- 2026-04-07_黄历.png              (第 1 页)
- 2026-04-07_黄历_养生.png          (第 2 页)
- 2026-04-07_黄历_故事.png          (第 3 页)
```

### 日期格式

```
YYYY-MM-DD

示例：2026-04-07
```

### 页面标识

| 页面 | 标识 | 说明 |
|------|------|------|
| 第 1 页 | 无后缀 | 封面 + 宜忌 + 生肖 |
| 第 2 页 | _养生 | 财神 + 养生 |
| 第 3 页 | _故事 | 科普 + 故事 |

---

## ✅ 质量标准

### 视觉检查清单

```
□ 双层边框完整（外红内金）
□ 所有文字居中对齐
□ 字体大小符合标准
□ 颜色使用正确
□ 行间距舒适（不拥挤）
□ 分隔线位置合理
□ 底部信息完整
□ 无错别字
□ 文件大小 150-250KB
□ 图片清晰无锯齿
```

### 内容检查清单

```
□ 日期信息准确（公历 + 农历）
□ 宜忌内容完整
□ 生肖运势正确（红榜/黑榜各 3 个）
□ 财神方位准确
□ 养生建议合理
□ 科普内容准确
□ 故事内容完整
□ 底部免责声明存在
```

---

## 🔄 自动化建议

### 定时任务

```powershell
# Windows 任务计划程序
# 每日 05:00 执行
cd C:\Users\liuyan\.openclaw\workspace\reports
python generate_almanac_v2.py
```

### 数据源

```python
# 推荐 API
- 老黄历 API: https://api.qingyunke.com/api.php?key=free&appid=01&msg=今日黄历
- 万年历 API: https://www.sojson.com/open/api/huangli.shtml
- 农历 API: https://api.lwl12.com/day

# 或手动更新脚本中的日期数据
```

### 批量生成

```python
# 生成未来 30 天黄历
for day in range(1, 31):
    date = datetime(2026, 4, day)
    # 调用生成函数
    # 保存到对应文件
```

---

## 📊 发布标准

### 今日头条

```
发布类型：图文（三图轮播）
图片顺序：
  1. {日期}_黄历.png
  2. {日期}_黄历_养生.png
  3. {日期}_黄历_故事.png

标题：【{日期}】{农历} 每日黄历

正文：
今日黄历已更新！

📅 公历：{日期}
🌙 农历：{农历}

✅ 宜：{宜内容}
❌ 忌：{忌内容}

🏆 红榜：{红榜生肖}
⚠️ 黑榜：{黑榜生肖}

更多详情见图👆

#每日黄历 #传统文化 #生肖运势
```

### 抖音/小红书

```
发布类型：单图
图片：仅第 1 页（{日期}_黄历.png）
尺寸：1080x1400 完美适配 9:16
```

---

## 📝 版本历史

| 版本 | 日期 | 改进内容 |
|------|------|----------|
| V1 | 2026-04-07 18:27 | 初始版本（单页 1080x1920） |
| V1-Full | 2026-04-07 18:33 | 完整版（3 页 1080x1920） |
| V1-Opt | 2026-04-07 18:39 | 优化版（3 页 1080x1280） |
| V2 | 2026-04-07 18:42 | 最终版（3 页 1080x1400） |
| **V2.0.0** | **2026-04-09 15:25** | **紧凑版 + 干支 + 吉时 + 穿衣** ⭐ |

### V2.0.0 主要更新

1. **紧凑布局** - 全局段间距离缩小 10-15px
2. **完整干支** - 第 1 页增加年柱 + 月柱 + 日柱
3. **吉时查询** - 第 2 页增加 12 时辰吉凶（仅地支名称）
4. **穿衣建议** - 第 3 页增加五行颜色搭配

---

## ⚠️ 注意事项

1. **字体版权**: 使用系统自带字体（如黑体），避免版权风险
2. **内容准确性**: 黄历数据需核对权威来源
3. **免责声明**: 必须包含"传统文化 仅供参考"
4. **文件大小**: 控制在 250KB 以内，便于网络传播
5. **备份脚本**: 保存 generate_almanac.py 以便复用

---

*本标准创建时间：2026-04-07 18:45*  
*V2.0.0 更新时间：2026-04-09 15:25*  
*适用范围：每日黄历图片生成*  
*最新版本：V2.0.0 (Almanac Creator)*  
*下次审查：2026-05-09*
