这次测了什么?
使用官方签名 Mac 包的 CLI,以隔离设置运行 --headless --export。每个原始样例分别导出 PNG 与 PSD;文字 PSD 另存时通过 --append-text 追加“ + PhotoCraft Guide”。再用独立的 psd-tools 解析保存结果,比较图层名称、类型、蒙版标记、效果数量和文档位深。
样例来自 psd-tools 的 MIT 许可测试集,固定到提交 b58704c1c9c9;解析器版本为 1.24.0。安装包 SHA-256 与发行方校验文件匹配。原始与输出文件的 SHA-256 均保存在结果 JSON 中。
逐文件结果
| 样例 | 原始结构 | 另存后检查 | 输入 / 输出 |
|---|---|---|---|
| 像素图层2layers.psd | 101×55 · 8-bit · 2 层 | 对应记录与位深保留 | 原始 PSD ↗ 保存 PSD ↗ 未修改时导出 PNG ↗ |
| 可编辑文字text.psd | 400×400 · 8-bit · 2 层 | 对应记录与位深保留追加文字保留为文字层 | 原始 PSD ↗ 保存 PSD ↗ 未修改时导出 PNG ↗ |
| 图层蒙版与形状mask.psd | 100×150 · 8-bit · 3 层 | 对应记录与位深保留 | 原始 PSD ↗ 保存 PSD ↗ 未修改时导出 PNG ↗ |
| 文字与图层效果layer_effects.psd | 800×640 · 8-bit · 12 层 | 对应记录与位深保留 | 原始 PSD ↗ 保存 PSD ↗ 未修改时导出 PNG ↗ |
| 智能对象记录placedLayer.psd | 256×256 · 8-bit · 4 层 | 对应记录与位深保留 | 原始 PSD ↗ 保存 PSD ↗ 未修改时导出 PNG ↗ |
| 16-bit RGB · 5×516bit5x5.psd | 5×5 · 16-bit · 3 层 | 对应记录与位深保留 | 原始 PSD ↗ 保存 PSD ↗ 未修改时导出 PNG ↗ |
| 32-bit RGB · 5×532bit5x5.psd | 5×5 · 32-bit · 3 层 | 对应记录与位深保留 | 原始 PSD ↗ 保存 PSD ↗ 未修改时导出 PNG ↗ |
预览对照与文字修改证据
左图提取输入 PSD 中保存的合并预览,右图由 Patchy CLI 导出。原文件可能包含缓存像素,因此这不是清除缓存后的独立渲染基准。效果样例的 RGB 平均绝对差为 0.5761(通道范围 0–255);这不是兼容率或评分。



尚未验证的项目
- Photoshop 回读:环境未安装 Photoshop,不能确认在 Photoshop 中的渲染与继续编辑。
- 复杂生产文件、字体保真、外链素材重新关联、智能对象源文件修改、蒙版与效果编辑。记录仍存在不等于这些操作成功。
- 高位深色值保真、CMYK/Lab 原生编辑、性能和浏览器版。两个 5×5 样例只能确认保存后的位深字段。PNG 对照为 8-bit RGB 预览。
- Photon Studio、PhotoSuite、Photopea 等工具还未跑相同样例,不能据此给出跨工具排名。
如何复现
下载复现脚本和表格中的 7 个原始 PSD,放在同一目录。在独立 Python 环境安装 psd-tools 与 Pillow,运行下列命令,把路径换成官方 Patchy 1.08 可执行文件。脚本会核对输入哈希,并将新输出保存到独立目录,不覆盖原文件。
python3 reproduce.py --patchy /path/to/Patchy --inputs . --output ./rerun