Skip to content

v0.1.0 · 首个公开版本

Choose a tag to compare

@gopkg-dev gopkg-dev released this 22 Oct 03:10

psdkit 的首个公开版本:用同一份纯 Go 实现读取、受控编辑、保存和渲染 Photoshop PSD/PSB,并在浏览器中通过 WebAssembly 运行。

需要 Go 1.27.3+,核心库仅依赖标准库,采用 MIT 许可。此为早期 v0.x 版本,公共 API 与支持范围仍可能调整。

安装

go get github.com/gopkg-dev/psdkit@v0.1.0
import "github.com/gopkg-dev/psdkit"

本版能力

  • PSD/PSB 索引与按需读取:读取图层、资源、通道和 Descriptor;保留未知块、原始区间和原位深数据。
  • 可编辑保存:新建 PSD/PSB,编辑图层名称、显隐、不透明度、像素和层级;尽量保留未修改数据,支持重复保存及 Windows 原位替换。
  • RGB8 合成:在声明的支持范围内处理图层组、混合、剪贴和蒙版;提供独立图层组合成 CompositeGroup、区域输出、预算与取消控制。原生 Go 支持有界分块并行,浏览器保持单 Worker。
  • 智能对象与模板套图:读取嵌入来源,替换共享智能对象内容,保留原放置与蒙版;自定义 Warp 数学近似需显式开启。
  • 文字、矢量、色彩与高位深入口:提供字体、矢量、渐变、图案、效果、ICC 及受限 16/32 位处理能力,各自遵循能力矩阵中的边界。
  • 浏览器 SDK 与 Playground:本机导入文件、查看图层、调用 Go 入口、编辑和下载结果;首页演示两款真实上衣印花、上传替换及有界缓存。

已知边界

  • 读取结构、可编辑保存、读取文件内保存预览和实时重绘是不同能力;不承诺任意文档与 Photoshop 逐像素一致。
  • 超出支持范围时返回明确错误;近似策略默认关闭,不会静默降位或伪造预览。
  • 完整高位深混合、高级文字排版、任意 Warp 预设及全部效果/滤镜组合尚未覆盖。
  • 字体须由调用方提供;外链通过调用方显式映射解析,不自动访问 PSD 内的系统路径或任意 URL。
  • 大型演示素材独立维护,私有测试语料和原生验收记录不随核心模块分发。

完整范围见 v0.1.0 能力清单 与 在线能力矩阵。

发布验证

  • 基线提交:2425474。
  • 跨平台 CI:Linux、macOS、Windows 的 Go 竞态测试与 vet,以及 golangci-lint、浏览器 SDK 测试和构建全部通过。
  • 通过仓库外的独立 Go 项目从公共模块代理安装 v0.1.0,校验依赖版本且不使用本地 replace,验证 PSD/PSB 新建、图层编辑、整图与图层组合成、保存、重开和重复同路径保存。

文档与演示

本版本以 Go 模块及 GitHub 自动生成的源码归档分发,不要求下载平台二进制或大型素材才能引用核心库。