satori

网页代码一键变高清图,放大不糊,不用截图

开源 🏷️完全免费 🚫 站点已失效 图像生成 🍴 复刻 400 🐛 待处理 163 👀 关注 76
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 14168
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源库,免费使用,提供在线演示页面(og-playground),无付费版本。

项目预览

satori 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类图像生成
开发团队vercel
定价模式🏷️完全免费
价格说明开源库,免费使用,提供在线演示页面(og-playground),无付费版本。
访问状态🚫 站点已失效
是否开源是
开源协议MPL-2.0
主要语言TypeScript
技术栈/模型css,image,image-generation,image-generator,jsx,opengraph-images,satori,svg,vercel
GitHub 星标★ 14168
上线时间2022-01-27 00:00:00
代码更新2026-11-06
仓库体积20.5 MB
本站数据更新2026-11-08
维护状态活跃
收录时间2026-08-09
浏览次数39

项目介绍

Vercel 开源的高性能 HTML/CSS 转 SVG 渲染库,无需浏览器即可在服务端将网页元素渲染为矢量图,常用于生成社交媒体卡片、OG 封面与自定义图片,轻量高效、易于集成。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 14168

使用教程

⚠ 本教程由 AI 依据该项目 README 整理;原始文档不完整,部分步骤为通用流程推断,实际安装请以项目官方文档为准。

难度:入门 约 10 分钟 部署方式:库/依赖 4 步

⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。

环境要求

  • Node.js >= 16(浏览器和 Web Workers 也可直接运行)
  • 支持 JSX 的构建/运行环境(Satori 接受 JSX 语法)
  • 至少一个字体文件,以 Buffer/ArrayBuffer 形式提供

安装与启动步骤

  1. 1安装 satori

    README 示例中从 'satori' 包导入,因此在项目里安装同名 npm 包即可(README 未直接给出安装命令,此为按包名推断)。

    npm install satori
  2. 2读取字体数据

    用 Node.js 的 fs 或 fetch 把字体读成 Buffer/ArrayBuffer,赋值给 fonts[].data,否则无法渲染文字。

  3. 3编写渲染代码

    用 JSX 描述要渲染的元素,调用 satori 并传入宽高与字体配置,JSX 必须是纯的、无状态的元素。

    import satori from 'satori'
    
    const svg = await satori(
      <div style={{ color: 'black' }}>hello, world</div>,
      {
        width: 600,
        height: 400,
        fonts: [
          {
            name: 'Roboto',
            data: robotoArrayBuffer,
            weight: 400,
            style: 'normal',
          },
        ],
      },
    )
  4. 4取出 SVG 结果

    satori 返回 SVG 字符串,形如 '<svg ...><path d="..." fill="black"></path></svg>',可直接使用或落盘保存。

关键配置

配置项必填说明示例
width是输出 SVG 的宽度(像素)600
height是输出 SVG 的高度(像素)400
fonts是字体配置数组,用于文字排版[{ name: 'Roboto', data: robotoArrayBuffer, weight: 400, sty
fonts[].name是字体名称,供样式引用Roboto
fonts[].data是字体二进制数据,Buffer 或 ArrayBufferrobotoArrayBuffer
fonts[].weight是字重400

如何确认成功

调用后返回的字符串以 '<svg' 开头并包含 '<path d="..." fill="black">' 等节点,即渲染成功。

常见问题

Q:Satori 能在哪些环境运行?

A:可直接用于浏览器、Node.js(>= 16)和 Web Workers。其底层 WASM 依赖以 base64 字符串打包,在运行时加载。

Q:怎样生成 PNG(如 OG 图、社交卡片)?

A:README 建议参考 Vercel 的 Open Graph Image Generation 文档与 Next.js 的示例;Satori 本身输出的是 SVG 字符串。

Q:Cloudflare Workers 等无法动态加载 WASM 怎么办?

A:README 提到可使用 Standalone Build(独立构建版本)来规避动态加载 WASM 的限制。

注意事项

  • Satori 只接受纯的、无状态的 JSX 元素
  • Node.js 版本需 >= 16
  • 字体必须显式以 Buffer/ArrayBuffer 形式提供,README 未给出安装命令,安装步骤为按包名推断

核心亮点

  • 将 HTML/CSS 直接转换为 SVG,无需浏览器或 DOM,渲染性能高
  • 基于 JSX 语法编写样式,与 React 生态无缝集成,开发体验好
  • 支持 Open Graph 图片生成,被 Vercel 官方用于 OG 图服务,生产环境验证充分

不足之处

  • 对复杂 CSS 特性(如 flexbox 部分布局、伪元素)支持有限,高级样式需变通
  • 文档/社区待观察

适用场景

  • 动态生成社交媒体分享卡片(Open Graph 图片)
  • 服务端渲染 SVG 用于图表、海报等静态图形输出
  • 在无头环境中批量生成图片,替代 Puppeteer 截图方案

替代项目

sharp、resvg-js、Puppeteer

上一篇:pytorch-CycleGAN-and-pix2pix

下一篇:CycleGAN

同类项目推荐

naver-webtoon-faces 开源

一键将人脸照片变成韩漫风格卡通头像

Generative models on NAVER Webtoon faces

★ 291 2026-08-09
VINO-code 开源

一个模型搞定图像视频的编辑与生成,支持多模态输入。

A Unified Visual Generator with Interleaved OmniModal Context

★ 236 2026-08-09
Flux-3-Dev-API 开源

一行代码调用 FLUX 3 全家桶,快速生成图像和视频。

Python wrapper for Black Forest Labs' FLUX 3 Dev API, available now — fast, low-cos···

★ 185 2026-08-09
PowerPaint 开源

一个模型搞定图像修补:插入、移除、外扩、形状生成全支持

[ECCV 2024] PowerPaint, a versatile image inpainting model that supports text-guided···

★ 1124 2026-08-09
lecam-gan 开源

小样本也能训练出高质量 GAN,稳定不崩

Regularizing Generative Adversarial Networks under Limited Data (CVPR 2021)

★ 166 2026-08-09
Text-To-Material-Unity 开源

在Unity里输入文字,一键生成材质,告别手动调参。

Generate materials from text prompts in Unity

★ 79 2026-08-09
AODA 开源

让草图在开放域下也能生成逼真照片,突破类别限制

Official implementation of "Adversarial Open Domain Adaptation for Sketch-to-Photo S···

★ 88 2026-08-09
time-diffusion 开源

精准修正扩散模型隐含偏见,无需重训,一句话改变生成假设。

Official code repo for "Editing Implicit Assumptions in Text-to-Image Diffusion Mode···

★ 89 2026-08-09