这次测了什么?

使用官方签名 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 中。

逐文件结果

PSD 记录检查;“保留”不代表已验证所有编辑行为。
样例原始结构另存后检查输入 / 输出
像素图层2layers.psd101×55 · 8-bit · 2 层对应记录与位深保留原始 PSD ↗
保存 PSD ↗
未修改时导出 PNG ↗
可编辑文字text.psd400×400 · 8-bit · 2 层对应记录与位深保留追加文字保留为文字层原始 PSD ↗
保存 PSD ↗
未修改时导出 PNG ↗
图层蒙版与形状mask.psd100×150 · 8-bit · 3 层对应记录与位深保留原始 PSD ↗
保存 PSD ↗
未修改时导出 PNG ↗
文字与图层效果layer_effects.psd800×640 · 8-bit · 12 层对应记录与位深保留原始 PSD ↗
保存 PSD ↗
未修改时导出 PNG ↗
智能对象记录placedLayer.psd256×256 · 8-bit · 4 层对应记录与位深保留原始 PSD ↗
保存 PSD ↗
未修改时导出 PNG ↗
16-bit RGB · 5×516bit5x5.psd5×5 · 16-bit · 3 层对应记录与位深保留原始 PSD ↗
保存 PSD ↗
未修改时导出 PNG ↗
32-bit RGB · 5×532bit5x5.psd5×5 · 32-bit · 3 层对应记录与位深保留原始 PSD ↗
保存 PSD ↗
未修改时导出 PNG ↗

预览对照与文字修改证据

左图提取输入 PSD 中保存的合并预览,右图由 Patchy CLI 导出。原文件可能包含缓存像素,因此这不是清除缓存后的独立渲染基准。效果样例的 RGB 平均绝对差为 0.5761(通道范围 0–255);这不是兼容率或评分。

输入 PSD 中的文字与图层效果合并预览
输入 PSD 保存的预览
Patchy 1.08 导出的文字与图层效果预览
Patchy 导出的 PNG
Patchy 另存文字层后回读导出的图片,包含追加的 PhotoCraft Guide 文字
修改文字 → 保存 PSD → Patchy 回读 → PNG

尚未验证的项目

  • 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

来源