项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 3186
使用教程
环境要求
- Bun 运行时(README 示例用 Bun 直接运行 JSX 文件)
- Node.js 或 Bun 环境(会自动加载预编译原生绑定)
- 如需在 Cloudflare Workers / 浏览器使用,则走 WebAssembly 构建
- 如需在 Rust 项目中使用,需引入 takumi crate
安装与启动步骤
-
1安装图像渲染包
在项目目录安装 takumi-js,支持输出 PNG、JPEG、WebP、SVG 和动画。
bun i takumi-js -
2安装 PDF 渲染包
如需生成分页 PDF,额外安装 takumi-pdf,可与 takumi-js 并存。
bun i takumi-pdf -
3编写图片脚本
新建 image.tsx,用 render 传入 JSX 和尺寸,README 示例输出 1200×630 PNG。
import { render } from "takumi-js"; import { writeFile } from "node:fs/promises"; const image = await render( <div tw="w-full h-full flex items-center justify-center bg-linear-to-b from-blue-100 to-red-50"> <h1 tw="text-6xl font-bold">Hello from Takumi</h1> </div>, { width: 1200, height: 630 }, ); await writeFile("./output.png", image); -
4运行图片脚本
用 Bun 直接执行 tsx 文件,在当前目录写出 output.png。
bun image.tsx -
5编写 PDF 脚本
新建 document.tsx,可指定 a4 尺寸并通过 footer 加页码页脚。
import { render } from "takumi-pdf"; import { PageNumber, TotalPages } from "takumi-pdf/primitives"; import { writeFile } from "node:fs/promises"; const pdf = await render( <main> <h1>Invoice</h1> <p>Total: $1,250.00</p> </main>, { size: "a4", footer: ( <div tw="flex w-full justify-center text-[10px] text-gray-500"> <PageNumber /> / <TotalPages /> </div> ), }, ); -
6运行 PDF 脚本
执行 Bun 命令生成 A4 分页 PDF 文档文件。
bun document.tsx
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
width | 否 | 输出图片宽度(像素),配合 height 使用 | 1200 |
height | 否 | 输出图片高度(像素) | 630 |
size | 否 | PDF 页面尺寸,例如标准 A4 | a4 |
footer | 否 | PDF 页脚内容,可放 PageNumber / TotalPages | <PageNumber /> / <TotalPages /> |
如何确认成功
运行 bun image.tsx 后当前目录生成 output.png(1200×630);运行 bun document.tsx 生成对应 A4 PDF。
常见问题
Q:还需要安装 Puppeteer 等无头浏览器吗?
A:不需要。takumi 不依赖无头浏览器,直接从 JSX/HTML/CSS 渲染,资源占用和部署复杂度更低。
Q:可以只在 Node.js 里用吗?
A:可以。Node.js 与 Bun 会加载预编译原生绑定,覆盖 macOS、Linux(glibc/musl)和 Windows 的 x64 与 ARM64。
Q:能在 Cloudflare Workers 或浏览器里跑吗?
A:可以,这两种环境使用 WebAssembly 构建;Rust 应用则直接嵌入 takumi crate。
Q:图片包和 PDF 包必须都装吗?
A:不必须。只要图片/动画装 takumi-js,只要分页 PDF 装 takumi-pdf,按需选择即可。
注意事项
- README 示例统一使用 Bun 运行 JSX,若换用其他运行时请自行确认是否支持直接执行 TSX。
- 样式写在 JSX 的 tw 属性中(Tailwind 风格),尺寸通过 render 的第二个参数传入。
- 安装方式按包区分:takumi-js 负责 PNG/JPEG/WebP/SVG 与动画,takumi-pdf 负责分页 PDF。
核心亮点
- 无需无头浏览器,资源占用低,启动快,适合 Serverless 环境
- 支持 JSX/HTML/CSS 直接渲染,前端开发者上手成本低
- 跨平台运行(Node/Worker/浏览器/Rust),部署灵活
不足之处
- 项目较新,生态和文档相比成熟方案仍有待完善
- 复杂 CSS 布局支持可能不如完整浏览器渲染引擎
适用场景
- 动态生成社交媒体分享卡片(OG 图)
- 在边缘函数中生成 PDF 发票或报告
- 为静态站点批量生成预览图
替代项目
Puppeteer、Playwright、Satori
同类项目推荐
Generating-Devanagari-Using-DRAW
开源
用DRAW模型生成天城文手写字符,体验循环注意力生成。
PyTorch implementation of DRAW: A Recurrent Neural Network For Image Generation trai···
stable-diffusion-multi-user
开源
多用户共享 SD 绘画服务,多 GPU 自动负载均衡
stable diffusion multi-user django server code with multi-GPU load balancing
Qinti
开源
双击即用的专业级 AI 图像生成前端,无需配置环境
An AI image generation frontend focused on ease of use, versatility and capability f···
comfyui-lama-remover
开源
在 ComfyUI 里一键擦除图像中不想要的物体,自动补全背景。
a simple lama remover
image-prompt-library
开源
本地管理 AI 绘画提示词,分类收藏一键复用
Local-first image prompt library for generating images, saving prompts, tags, and co···
stable-diffusion-webui-extension···
开源
一键浏览安装 WebUI 插件,告别手动找仓库
Extension index for stable-diffusion-webui
parti-pytorch
开源
用纯Transformer把文字变成高清图像,复现Google Parti模型
Implementation of Parti, Google's pure attention-based text-to-image neural network,···
sd-webui-image-sequence-toolkit
开源
在 WebUI 里一键生成并导出图像序列,做动画和变化效果更高效。
Extension for AUTOMATIC111's WebUI
layout2im
开源
给物体框和类别,直接生成符合布局的场景图
Official PyTorch Implementation of Image Generation from Layout - CVPR 2019
