首页 / 资讯中心 / 文章详情

PhotoCraft 源码视角:631 个菜单项背后,纯 Rust 版 Photoshop 的真实完成度

PhotoCraft 源码视角:631 个菜单项背后,纯 Rust 版 Photoshop 的真实完成度 ★ FEATURED ARTICLE
PhotoCraft 源码视角631 个菜单项背后纯 Rust 版 Photoshop 的真实完成度【免费下载链接】photocraftPhotoCraft: An open-source, photo editor written by scratch in pure Rust项目地址: https://gitcode.com/gh_mirrors/pho/photocraftPhotoCraft 是 ArtCraft 团队用纯 Rust 从零clean-room即只依据公开规范与观察行为实现、不复制任何专有代码重写的开源图像编辑器原生读写 PSD/PSB 分层文档、wgpu GPU 渲染管线、写时复制瓦片copy-on-write tiles一种让撤销变廉价的内存结构、以及可整套编译成 WebAssembly 跑进浏览器的能力。要判断它能用到什么程度不能只看 README 的功能清单得看它自己维护的那套可复算度量。定位与预期校准early alphawiring 不度量行为技术栈的选型逻辑在 ROADMAP.md 与 docs/scorecard.md 里都很直白引擎层是纯数据的文档模型加命令引擎UI 是薄薄一层 egui24 个 crate 之间用编译期属性never-crash lint强制分层30 个 crate 全部挂了 panic 防护。这套结构的收益在文档里被明确表述为UI、CLI、JSON 控制通道、MCP 服务器全部调用同一个命令注册表任何你能点的脚本也能做。边界声明直接引官方 README 的状态栏原文PhotoCraft is in early alpha……it is not yet a Photoshop replacement for daily professional work尚不是日常专业工作的 Photoshop 替代品最大的缺口是 AI/生成式功能、缺失的工具、排版与专业工作流深度、插件兼容README 还特意补了一句——每个 Photoshop 菜单项都接到了命令但那度量的是 wiring是否接上不是 behaviour行为是否一致。建立第一印象的核心数字口径ROADMAP 最后更新 2026-10-17PhotoCraft 0.6.0对照对象为 Photoshop 2026 27.11.0指标数值口径功能表面积feature breadth~76%部分实测菜单 628/628、工具 56/68、面板 30/35真实工作就绪度ready for real work~45%40–50%官方加权估计非实测基础用户就绪度essentials user~61%55–67%官方估计打开 issue 数9532026-10-13 口径测试规模1,700 测试README含语料往返与合成器 oracle一个容易忽略的信号进度日志里 2026-10-050.2.0的自评是ready 25–35%两周后的 0.6.0 重测才到 ~45%。数字在涨但涨幅本身就是这个项目迭代速度的注脚——首次提交于 2026-09-30到 2026-10-10 已有 1,004 个合并 PR。能力维度拆解声称、实测与差距归因PSD 兼容性结构往返很强重渲染 Photoshop 的效果还很弱声称README 的 PSD without compromise 一节说PSD 支持是独立 crate依据 Adobe 公开规范编写未修改文件的往返渲染一致率是 psd-tools 测试集 307/309而脱离文档模型、纯解析-写回的photocraft-psdcrate 能做到字节级逐位复现。book/src/formats/psd-psb.md 同时写明了解析器的防御性上限文档单边不超过 300,000 像素、单次解码数据不超过 2 GiB、ActionDescriptor 嵌套不超过 64 层、行数与解码长度全部用 checked 运算——文档自己承认这些是降低风险而非证明对一切恶意文件安全。实测当前仓库的 CI 语料下限corpus floorsdocs/scorecard.md 由cargo xtask scorecard生成是语料文件数Oracle 渲染通过下限往返下限io corpuscorpus/psd170148169psd-tools corpus309249308Photoshop 自绘 oraclecorpus/photoshop256190258差距归因docs/gaps.md 的 G1 条目blocks beta 级写得很诚实——两个方向的缺口都存在一是Photoshop 拒收我们的文件#1281、#2469 用户报告#2374 文本图层案例已于 2026-10-10 修复二是我们用自家算法重渲染 Photoshop 的智能滤镜只匹配 5/30。另外 FILE-216-4 一行直白地写着目前没有任何测试把导出文件交给第三方编辑器打开验证——round trip 只是我们的导出喂回我们的导入。双合成器架构CPU 参考 oracle 与 GPU 路径互相测试但 GPU 会崩声称README Under the hood 说有两个合成器——CPU 合成器充当参考 oraclewgpu 合成器把画布放到 GPUMetal/Vulkan/DX12/WebGPU二者互相测试。这是同类 Rust 编辑器里少见的架构CPU 路径不是降级方案而是对 GPU 路径做正确性判据的角色。实测docs/scorecard.md 的 25 个性能预算场景里只有 3 个达标22 个超标或失败。最扎眼的两行P12150 层文档中用方向键微调直接missing: panicked: wgpu error: Validation ErrorGPU 路径崩溃P14在 15000×10000 16-bit 文档上移动图层p50 实测 2698 ms预算 80 ms p95。差距归因ROADMAP.md 的 Upcoming 表把22 个超标场景和 150 层 GPU 崩溃列为里程碑 2估计 200–350 小时。工程上的补救是 apps/photocraft/src/gpu_startup.rs 里的回退链驱动崩溃后下一次启动自动回退到 CPU 渲染器--safe-gpu参数可强制本次启动走 CPU源码注释写明for one launch即只作用于当次不持久化。WASM 部署23.9 MiB 的 Wasm 决定了托管策略声称整个引擎加 UI 编译到 WebAssemblyruns in the browser。实测packaging/web/README.md 给出了 2026-10-130.8.2的实测数字Wasm 原始 25,019,043 字节23.9 MiB。因为 Cloudflare Pages/Workers 对单个静态资源有 25 MiB 硬上限0.2.0 之前发布的 25.8 MiB Wasm 被直接拒收issue #198官方打包脚本会把 Wasm 先 gzip、再切成不超过 20 MiB 的分片part-aa、part-ab…页面下载时拼回并且package.sh会在任何站点文件超过 24 MiB 时直接让构建失败防止再次越线。文档同时给了硬性清单.wasm必须以application/wasm提供否则浏览器拒绝流式编译index.html配no-cache带 hash 的资产配max-age31536000, immutable不依赖SharedArrayBuffer因此不需要COOP/COEP 头。差距归因文档没有回避代价——浏览器无 WebGPU 时静默回退 WebGL2?webgl强制指定、?cpu强制最慢但最兼容的 CPU 画布路径纯 HTTP 部署下 WebGPU 和剪贴板都不可用必须走 HTTPS 或 localhost。好消息是public_url ./的相对路径设计让站点可以放在域名根、子路径或 CDN bucket 任意位置。快捷键生态.kys 导入是按标签匹配且诚实列出边界声称README 说从 ⌘J 到 ⇧⌘D菜单、快捷键、面板位置都跟 Photoshop 对齐。实测导入逻辑在引擎侧 crates/engine/src/kys.rs.kys本质是 XMLcommand kindstatic nameGaussian Blur...行加shortcut子节点。源码注释写清了匹配规则Photoshop 只按菜单文案命名命令所以匹配靠标签近似同名菜单项比如两处都有的 Levels...用默认快捷键与导入键重合者优先消歧一条命令的多个快捷键里第一个成为主键其余进 alternates。测试样例kys_import_tests.rs里还特意覆盖了 Windows 保存的集合——那里的Ctrl对应 Mac 集合的Cmd导入时会做映射。差距归因匹配不上的命令Photoshop 脚本、Bridge、macOS 应用菜单等不会静默丢弃导入对话框会明确提示N commands are not in PhotoCraft。工具键tool keys当前版本可以导入#5036工具字母的改键成为 override改回字母本身则清除。另一条工程化的补救在 apps/photocraft/src/photoshop_settings.rs首次启动时自动探测本机安装的 Photoshop主动提出导入它正在使用的快捷键方案Keyboard Shortcuts.psp与.kys同构但注释写得很清楚——its live set is offered, never applied unasked必须用户确认。上手路径与认知误区文档里写了但极易被跳过的细节误区一打开成功≈渲染一致。实际情况Oracle 渲染通过下限只有 148/170io corpus智能滤镜重渲染 5/30——结构能保住像素不保证。正确操作cargo xtask corpus --all拉取官方语料库跑cargo xtask test-corpus看自己的文件落在哪个区间而不是目测一张图就下结论。误区二默认在跑 GPU。实际情况GPU 驱动崩溃后下次启动静默回退 CPUWeb 端无 WebGPU 静默降级 WebGL2。正确操作桌面端查 Preferences › Performance 的 backend 设置gpu_startup.rs的 plan 会给出 reason 字符串--safe-gpu的 reason 是CPU renderer for this launchWeb 端用?cpu/?webgl显式指定后端再复测。误区三菜单 100% 接通 功能 100% 可用。实际情况docs/scorecard.md 在 Automation 一节自己标注了口径——631 of 631 menu items live (100.0%). This counts dispatch, not behaviour.同一张表的 Workspace 小节还列出 20/177 个偏好设置项没有任何代码读取它们#204目标 0也就是说界面上能点的某些开关什么都不做。正确操作把docs/scorecard.md当检查清单用遇到可疑开关先查它是否在那份settings that do nothing名单里。误区四官方说往返一致意味着 Photoshop 也认我们的文件。实际情况G1 明确PSDs we write are not always accepted by Photoshop且 FILE-216-4导出用第三方编辑器复验状态是 missing。正确操作与 Photoshop 用户交换文件前先在对方机器上实测重开版本口径是 0.6.0/0.8.22026-10-10/13之后的大量修复通过了测试但还没经过用户验证跨版本行为可能变。选型与收束谁能现在用谁该再等基于以上证据判断可以下得比较硬版本口径 0.6.0文档口径 2026-10-17适合现在用把 PSD 当作读取与结构保留对象的工作流——打开 Photoshop 存档、读图层/智能对象结构、导出 PNG/JPEG以及任何想驱动自动化管线的人因为 CLI、MCP、控制通道和 UI 共享同一命令注册表这是文档里少数做得比 Photoshop 还超前的维度.atn动作 112 个事件双向映射、批量命名模板、36 个 MCP 验收任务。不适合需要把文件交回 Photoshop 继续编辑的专业管线拒收风险未闭环重度依赖智能滤镜重渲染一致性的场景5/30需要 AI/生成式功能或 .8BF 插件生态的场景就绪度 10–15%文档承认需要 owner 决策。什么条件下可以开始用essentials 口径基础用户 ~61%意味着开文件、常用工具、撤销、保存导出这条链路官方已验证端到端可用alpha gate 通过六大核心工作流全部完成并可保存重开——8-bit 常规文档、无智能滤镜、不要求与 Photoshop 往返的场景现在就能认真用。PhotoCraft 最值钱的不是接近 Photoshop的声称而是它把 148/170、5/30、3/25 这些不够好看的数字公开在 CI 里让每个缺口都可复算、可追踪。【免费下载链接】photocraftPhotoCraft: An open-source, photo editor written by scratch in pure Rust项目地址: https://gitcode.com/gh_mirrors/pho/photocraft创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站