示例与 Playground
命令行示例
从仓库根目录运行。读取类示例需要显式提供 -psd;先用 create 生成一个自有输入即可,无需外部素材。
| 示例 | 用途 | 命令 |
|---|---|---|
| create | 新建 PSD/PSB | go run ./examples/create -out /tmp/new.psd |
| index | 原始结构与按需通道 | go run ./examples/index -psd /tmp/new.psd |
| inspect | RGB8 结构与智能对象 | go run ./examples/inspect -psd /path/input.psd |
| edit | 编辑并保存 | go run ./examples/edit -psd /tmp/new.psd -out /tmp/edited.psd |
| composite | RGB8 合成 | go run ./examples/composite -psd /tmp/new.psd -out /tmp/composite.png |
| render | 模板套图 | go run ./examples/render -psd /path/template.psd -print /path/print.png -out /tmp/render.png |
| color | 源精度显示 / ICC | go run ./examples/color -psd /tmp/new.psd -out /tmp/display.png |
| scene | 来源 / 区域 / 画板重绘 | go run ./examples/scene -help |
| precision | 16/32 位合成 | go run ./examples/precision -help |
| placed-layer | 单个智能对象重绘 | go run ./examples/placed-layer -help |
| replace-contents | 替换智能对象内容 | go run ./examples/replace-contents -help |
新建的普通文档不含模板智能对象;模板类示例需要符合支持范围的输入。完整参数、预算与显式近似策略通过每个示例的 -help 查看。
edit 支持的参数:
go run ./examples/edit -psd /tmp/new.psd -out /tmp/edited.psd \
-layer 0 -name "主视觉" -opacity 204 -compression zip
浏览器 Playground
Playground 把同一份 Go 实现编译为 WebAssembly,在 Web Worker 中运行:
- 首页与 Playground 共用真实上衣样机
muban.psd,内置「山野日落」「向阳花园」两款印花,支持 5 个共享衣片联动替换;示例显式采用数学 Warp 近似,模板缺失时明确报错; - 首页通过小图缩略图选择印花,点选或本地上传后自动替换并重新渲染;支持 PNG/JPEG/WebP,文件不超过 20 MB、2000 万像素。上传图片等比例适配到白色 RGB8 印花画布,用于样机预览;
- 首页在单个 Worker 内缓存最多 3 份印花编辑状态和 16 MiB 的 PNG。重复选择直接恢复相应编辑器与预览,PSD 下载使用当前印花的真实编辑状态;显示 / 隐藏或不透明度变化会使预览失效,已生成的智能图层投影继续复用。新上传会释放上一次本地印花缓存,重启引擎或离开页面释放整个工作区;
- 内置印花的智能对象内容 PSD 在构建时生成并校验,避免浏览器首次使用时重复编码。它们是忽略的站点构建产物;本地上传仍由浏览器内的 Go 引擎生成内容 PSD;
- 选中智能对象可一键“替换内容”:图片经
raster.buildPSD转为可编辑 PSD,再由editor.ReplaceContents替换真实来源,实时重绘时 Warp 保持不变; - 可导入本机 PSD/PSB、PNG/JPEG、TTF/OTF/TTC 字体与 ICC,文件不会上传;
- 图层树支持选择、显示 / 隐藏,属性面板可改名、调整不透明度和填充、替换像素、增删图层;
- 画布明确标注“保存预览”或“实时重绘”;
- 能力目录列出全部真实 Go 入口,常用参数使用表单,复杂参数通过 JSON 高级面板传入;
- 结果面板可下载 PNG、PSD/PSB 和原始二进制,并释放资源句柄。
[!NOTE] 浏览器预算默认单次 256 MiB、1600 万像素。大型文档请优先使用原生 Go。
本地运行
make site # 构建文档、Wasm 与 Playground,组装到 _site/
make site-preview # 在 http://127.0.0.1:8301/psdkit/ 预览