Skip to content

开源项目 · 本地手写图片生成器

星笺 HandwritingGenerator

让文字,带一点星光。

把想说的话写成一页有温度的纸笺。选纸张、挑字迹、调墨色与留白,右侧实时预览,最后导出图片;文字与图像都在本地处理,不需要 API Key。

  • 本地运行
  • 无需 API Key
  • 手写字体
  • 预设复用
星笺桌面版界面,左侧是内容、排版和纸张设置,右侧是手写效果实时预览
桌面版:左侧「内容 / 排版 / 纸张」,右侧实时预览。
平台
macOS / Windows
技术栈
Python · PyQt6 + Rust
导出格式
PNG / JPEG / WebP
使用入口
GUI / CLI / MCP

把一段话,写成一页纸 ​

星笺是一款本地手写图片生成器。输入文字,选一张纸、挑一种笔迹,再调整字号、字距、行距、墨色和留白,右侧会实时预览,最后导出 PNG、JPEG 或 WebP。

写一封信、抄一段诗、做一张日签,或者把一段摘抄变成可以保存的图片。喜欢的排版可以存成预设,下次换一段文字继续用。

文字和图像处理都在本地完成,不需要 API Key,也不会上传正文或图片。仓库同时提供 Python / PyQt6 版和纯 Rust 原生版,两个版本各有 GUI、CLI 与本地 MCP。

写出来的效果 ​

纸张、字体、墨色和留白都可以调。下面这张 724 × 1024 的信笺,就是选好内置纸张和手写字体后直接导出的。

星笺导出的手写信笺效果,红色横线纸上写着三行中文
导出效果:手写字体与红色横线来自本地资源。

能做什么 ​

纸张与字迹

内置多款纸张和手写字体,也可以导入 TTF / OTF / TTC 字体;纯色背景可以直接创建。

排版控制

边距、文字区域、字号、字重、字距、行距和墨色都能调,修改后预览立即更新。

画布操作

拖动纸张、按住 Ctrl / ⌘ 滚动缩放,支持 1:1、适应窗口、文字边界和右键测量标记。

预设复用

把喜欢的版式保存成 JSON 预设,保留文字、资源路径和排版参数,下次换文字继续用。

多格式导出

导出 PNG、JPEG 或 WebP,保持背景原始像素尺寸;PNG 可以保留透明背景。

自动化入口

CLI 适合批量生成,本地 MCP 让 AI 工具直接调用;默认不覆盖已有文件。

快速开始 ​

bash
uv sync
uv run python main.py
bash
cargo run --manifest-path rust/Cargo.toml --release --locked

Python 版需要 Python 3.10+(开发与打包推荐 3.12),依赖 PyQt6>=6.7,<7。没有 uv 时,可以用 venv 建独立环境后执行 pip install 'PyQt6>=6.7,<7',再运行 python main.py。

Rust 版使用 egui/eframe,内置 9 款字体和纸张,不需要 Python、Qt 或 WebView,支持 macOS / Windows 构建。

打包使用 PyInstaller,需要在目标系统上执行;产物会带上 Python、Qt、字体、纸张和图标。完整命令、MCP 配置和打包说明见 仓库 README。

命令行与 AI 调用 ​

除了桌面界面,星笺也提供命令行和本地 MCP,方便批量生成或让 AI 工具直接调用:

bash
# 直接生成
uv run python cli.py render --text '你好,星笺!' --output outputs/hello.png

# 复用排版,替换文字
uv run python cli.py render --preset outputs/letter.json --text '新的一封信' --output outputs/next.png

命令行参数会覆盖预设;默认拒绝覆盖已有图片或预设,需要时加 --force。输出目录会自动创建。

需要让 AI 工具调用时,再安装 MCP 依赖:

bash
uv sync --extra mcp
uv run --extra mcp python mcp_server.py --output-dir outputs

这是 stdio 服务,不会上传正文或图片;输出只能写到 --output-dir 指定的目录内。

限制数值
图片单边8192 px
总像素3200 万
正文长度10 万字符

常见问题 ​

需要联网或 API Key 吗? ​

不需要。渲染、字体和背景都在本地完成;只有安装依赖或访问 GitHub 时需要网络。

导出的图片为什么裁掉了部分文字? ​

导出保持背景原始像素尺寸,超出文字区域的内容会裁切,不会自动分页。可以增大文字区域、减小字号,或者分成多张导出。

macOS 和 Windows 都能用吗? ​

源码在两个平台通用,打包需要在目标系统上执行。macOS 产物对应构建机器的 CPU 架构,目前没有做 universal 应用,也没有 Developer ID 签名或公证。

相关入口 ​

说明:本页根据项目 README 与当前界面截图整理,功能和命令以仓库最新说明为准。

开源项目

喜欢这页纸,就去 GitHub 点个 Star。

问题、建议或想要的功能,欢迎在仓库里提 Issue。

打开 GitHub

本站收录内容源自互联网,不对其网站内容或交易负责。 | 如有内容侵犯权益,请联系站长删除相关内容!

今日和总访问量