Go API
模块路径为 github.com/gopkg-dev/psdkit。根包 psdkit 汇总了常用入口与类型别名,适合大多数应用直接使用;需要更细控制时再引入对应子包。完整签名与注释见 pkg.go.dev(首次公开并被索引后可用),或在仓库中运行 go doc。
go doc github.com/gopkg-dev/psdkit
go doc github.com/gopkg-dev/psdkit.Editor
常用入口
| 任务 | 入口 |
|---|---|
| 打开原始文档 | OpenDocument / ParseDocument / ReadDocument → *SourceDocument |
| 编辑与保存 | OpenEditor / NewEditor / CreateDocument → *Editor;SavePSD / WritePSD |
| 保存预览 | DecodeDisplayComposite / DecodeDisplayRegion |
| 实时重绘 | RenderSource / RenderSourceTile / VisitSourceTiles / RenderArtboards |
| 高位深 | RenderSourcePrecision / ConvertSamples |
| RGB8 快照合成 | source.Decode + Composite / CompositeRegion |
| 智能对象 | Editor.ReplaceContents、BuildRasterContents、RenderSourcePlacedLayer |
| 文字与字体 | OpenFont、LayoutOpenType、RasterizeFontRun、RenderTextLayer |
| 色彩 | ReadSourceRGBProfile、TransformProfile |
| 编码 | Encode(PNG / JPEG)、PrepareOutput |
| 模板套图 | NewRenderer、Inspect、DefaultConfig、ValidateConfig |
包结构
| 包 | 职责 |
|---|---|
psdkit |
统一入口与类型别名 |
psdfile |
原始 PSD/PSB 索引、按需解码、Descriptor、区间读取 |
psdedit |
受控编辑与 PSD/PSB writer |
psdmodel / psdparse |
解码后的文档模型与 RGB8 兼容解析 |
psdcompose |
从已解码图层树重建 RGB8 画面 |
psdscene |
从原始文档有界重建 RGB8 画面,递归解析智能对象 |
psdrender |
模板套图引擎与 PNG/JPEG 编码 |
psdprecision |
不经 8 位量化的源精度合成 |
psdcolor |
原通道样本到显示像素的色彩转换与 ICC |
psdfont / psdtext |
字体读取、排版、光栅化;文字 EngineData |
psdwarp |
仿射、透视、单片与网格 Warp |
psdeffects / psdadjust / psdfilter |
图层效果、调整、智能滤镜 |
psdvector / psdgradient / psdpattern |
矢量路径、渐变、图案 |
psdweb |
浏览器 Worker 使用的有界内存协议 |
API 约定
- Context 优先:耗时操作的第一个参数是
context.Context,用于取消与超时。 - 显式所有权:
Open*拥有资源需要Close;Parse*/Read*借用调用方数据,使用期间不得修改。返回的像素是独立拷贝。 - 预算可配置:各入口的
Options都有Max*字段,零值选择默认值,负值无效。 - 错误可识别:使用
errors.Is判断ErrUnsupported、ErrLimit等类别,用errors.AsType[*psdkit.ReadError]读取结构化位置。 - 近似需显式:所有
Approximate*选项默认关闭。 - 坐标与位深:注释会说明坐标域(文档、图层、通道局部)和样本格式;不要隐式转换为 RGB8。
[!NOTE] 当前尚未发布 v1,公共 API 仍可能调整。浏览器 Playground 的能力目录由源码注释自动生成(
go run ./cmd/psdkit-web-docs),与本页使用相同的 Go 入口。
浏览器
浏览器中通过 Worker SDK 调用同一组入口,参数与返回值按 Go 类型做 JSON 映射,二进制独立传输。见浏览器 SDK。