Install
openclaw skills install long-image-generatorGenerative AI 长图(竖版图片)制作技能。使用 canvas 将文本、LaTeX 公式、图表等内容渲染为长条形图片(1080x+ 像素),适用于课程笔记、知识卡片、学习指南、读书笔记、思维导图等场景。 触发时机:(1) 用户要求"生成一张长图"或"做个长图" (2) 用户提到"竖图"、"海报"、"知识卡片" (3) 需要将文档/笔记转换为图片时
openclaw skills install long-image-generator通用长图(竖版图片)生成技能,可将文本、公式、图表等内容渲染为精美的长条图片。
| 类型 | 说明 | 示例 |
|---|---|---|
| 纯文本 | 标题、段落、列表 | 读书笔记、知识点总结 |
| LaTeX 公式 | 数学公式渲染 | $\int_a^b f(x)dx$ |
| 代码块 | 语法高亮代码 | Python、JavaScript |
| 表格 | 行列数据 | 课表、价格表 |
| 分割线 | 内容分区 | PART 分隔 |
将用户需求拆分为若干 PART(模块),每个 PART 高度建议 600-1200px:
PART 1: 封面/标题区 (~400px)
PART 2: 核心内容区 (~800px)
PART 3: 示例/练习区 (~600px)
PART 4: 总结/复习区 (~300px)
使用 OpenClaw 的 canvas 工具渲染 HTML 为图片:
// 基础模板结构
const template = `
<!DOCTYPE html>
<html>
<head>
<style>
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;700&family=JetBrains+Mono&display=swap');
body { font-family: 'Noto Sans SC', sans-serif; margin: 0; padding: 0; }
.part { padding: 40px; margin-bottom: 20px; }
.title { color: #E85D4E; font-size: 48px; font-weight: 700; }
.content { color: #1D3557; font-size: 28px; line-height: 1.8; }
.formula { font-size: 32px; }
</style>
</head>
<body>
${content}
</body>
</html>
`;
canvas.action = 'present';
canvas.javaScript = template;
canvas.width = 1080;
canvas.height = totalHeight;
在 HTML 中直接使用 LaTeX:
<!-- 使用 KaTeX -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css">
<script src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js"></script>
<!-- 公式示例 -->
<div class="formula">$$\\int_a^b f(x)dx = F(b) - F(a)$$</div>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-@11.9.0/build/styles/github.min.css">
<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-@11.9.0/build/highlight.min.js"></script>
<pre><code class="language-python">def f(x):
return x**2</code></pre>
调用 canvas 工具生成 HTML 渲染:
{
"action": "present",
"javaScript": "HTML模板",
"width": 1080,
"height": auto,
"outputFormat": "png"
}
Canvas 输出会自动返回图片路径,通常位于:
/root/.openclaw/media/outbound/longimage_*.png
使用 lightclaw_upload_file 上传并提供下载链接,或用 litterbox 临时链接。
<div style="width:1080px; background:#FFFFFF;">
<!-- 封面区 -->
<div style="padding:60px; text-align:center; background:linear-gradient(135deg, #2E5C8A 0%, #1D3557 100%);">
<h1 style="color:#FFFFFF; font-size:56px; margin:0;">${标题}</h1>
<p style="color:#A8DADC; font-size:28px; margin-top:20px;">${副标题}</p>
</div>
<!-- 内容区 -->
<div style="padding:40px 60px;">
<h2 style="color:#E85D4E; font-size:40px; border-left:8px solid #E85D4E; padding-left:20px;">${章节标题}</h2>
<div style="color:#1D3557; font-size:28px; line-height:2.0; margin-top:30px;">
${正文内容}
</div>
<!-- 公式区 -->
<div style="background:#F1FAEE; padding:30px; border-radius:12px; margin:30px 0;">
$${LaTeX公式}$
</div>
</div>
<!-- 底部信息 -->
<div style="padding:40px 60px; background:#A8DADC; text-align:center;">
<span style="color:#1D3557; font-size:24px;">🦞 定积出品</span>
</div>
</div>
<div style="width:1080px; min-height:600px; background:#FFFFFF;">
<div style="padding:50px;">
<h1 style="color:#E85D4E; font-size:48px;">${核心概念}</h1>
<div style="color:#1D3557; font-size:28px; line-height:2.0 margin-top:30px;">
${解释}
</div>
<div style="background:#F4A261; color:#1D3557; padding:30px; border-radius:12px; margin-top:40px;">
<strong>💡 关键点:</strong>${要点}
</div>
</div>
</div>
<div style="width:1080px; background:#1D3557;">
<div style="padding:40px;">
<h1 style="color:#FFFFFF; font-size:48px;">${标题}</h1>
<pre style="background:#2E5C8A; padding:30px; border-radius:12px; overflow-x:auto;">
<code class="language-${语言}" style="color:#F1FAEE; font-size:24px; font-family:'JetBrains Mono', monospace;">
${代码内容}
</code>
</pre>
</div>
</div>
本技能可应用于多个领域: