PhotoSuite 是由开发者 eolix 在 GitHub 上开源的一款桌面图像编辑器,其核心目标是 1:1 复刻经典版 Adobe Photoshop(约2020年版本)的使用体验,并实现与 Photoshop 原生格式 PSD/PSB 的完全兼容。
PhotoSuite 的核心理念是 "保真而非重新诠释"。它力求让熟悉 Photoshop 的用户无需重新学习——面板位置、快捷键、对话框字段、工具行为(甚至修饰键)都与原版保持一致。
PhotoSuite放话要1:1复刻Photoshop加无损PSD兼容,但开源圈已经有人踩过坑了!
过去十年,设计师圈子里流传着一句心照不宣的话:你可以骂Adobe的订阅制,但你不能不用Photoshop。一张设计了三十个图层、带着图层样式和智能对象的PSD文件,就是你的作品身份证,也是一副枷锁——这副枷锁的名字叫“离开的代价”。
2026年9月,一个叫PhotoSuite的开源项目在Reddit的r/opensource板块发布,宣称用Rust加Web技术复刻2020版Photoshop的界面和操作,并且实现了PSD文件的1:1往返兼容。这个承诺如果站得住,意味着一个设计师可以把PSD文件在PhotoSuite里打开、编辑、保存,然后在Photoshop里重新打开时,图层树、蒙版、文字、智能对象全都完好无损。设计师们等了二十年的“工作流自由”好像要来了。
离开Photoshop的代价到底有多重
先弄清楚一件事:为什么一个开源PSD编辑器值得让整个设计社区激动。答案藏在GIMP的GitLab合并请求里。GIMP从2000年代就开始尝试读取PSD文件,到2025年5月还在为一个“读取旧版投影图层样式”的补丁打补丁,而且这个补丁明确写着不支持新版图层样式格式。一份2015年的GraphicDesign问答帖至今仍被频繁引用,它列出的GIMP不支持功能清单读起来像一份设计灾难清单:Photoshop图层样式与效果、调整图层、智能对象、CMYK色彩模式、可编辑文字图层,全部缺失,文字打开就变成像素图。
这意味着一个设计师如果收到客户发来的PSD文件,在GIMP里打开之后,图层效果全部消失、调整图层被压平、文字变成图片,然后如果他把这个文件再发给客户,客户在Photoshop里看到的是一堆残骸。这不是“开源不好用”的问题,这是“开源根本不能用”的问题。
但是Photopea出现了,这个由Ivan Kutskir开发的浏览器端编辑器证明了PSD的完整解析在Web技术栈里是可以做到的。XDA的一位撰稿人试过几十款Photoshop替代品之后写道,Photopea“不只是一个缩水的模仿品”,它支持PSD文件的打开、编辑和保存,并且“没有遇到兼容性问题”。一位Capterra的验证用户在2026年6月的评价里也说,Photopea对PSD文件的整合“令人印象深刻,它保留了每一个图层、组和智能对象”。
然而,Photopea有一个结构性的天花板:它在浏览器里运行。处理一张多图层、高分辨率的PSD文件时,性能受限于浏览器和机器内存,不如原生软件流畅。一个叫Luminens的WebGPU RAW编辑器开发者在Product Hunt上分享过一个细节:他用一台Ryzen 4000的集成显卡电脑打开一个200MB的哈苏RAW文件,Luminens处理得很流畅,但他出于好奇把同一个文件放到Photopea里,浏览器直接崩溃了。
这就引出了PhotoSuite试图解决的那个具体矛盾。
Rust跑进桌面,PhotoSuite的技术选择不是随机的
PhotoSuite的开发者Patrik Sapinski在Reddit讨论里回应了“为什么用JS”的质疑,他的回答很直接:因为Photopea和相关开源项目已经做了大量的JS基础工作,而且这套技术栈跨平台一致性强。但他同时强调,项目基于Tauri和Rust是有原因的——“随着我对这门语言的掌握加深,更多核心功能会转移到Rust,把JS留给展示层”。
这不是一句漂亮话。Tauri和Electron的区别在于,Electron把整个Chromium浏览器塞进应用里,一个图片编辑器光外壳就吃掉几百兆内存。Tauri用操作系统自带的WebView渲染界面,Rust后端处理文件读写、菜单、剪贴板和打印。另一个基于Tauri构建的RAW编辑器RapidRAW的开发者记录了一个数据:在Web端拖动滑块调整高分辨率图片大约只能跑到20帧每秒,迁移到Tauri加wgpu渲染器之后,同样的操作跑到了120帧,直接吃满显示器刷新率。
PhotoSuite的路线图印证了Sapinski的说法。他计划把像素存储和像素运算从WebView搬到Rust层,用Rayon和SIMD做CPU并行计算,用wgpu做GPU计算,通过内存映射文件IO读写PSD,再把图块通过自定义Tauri协议流式传输到视口。如果这套架构完整落地,PSD文件的打开速度和图层操作的响应延迟会和浏览器端的Photopea拉开一个数量级的差距。
但是,一个Reddit用户krisluc在试用PhotoSuite之后留下了一条评论:“不错的应用,但我觉得渲染和交互相当慢,即使在Mac Mini M2 Pro上,空白画布只有一个图层也是如此”。
事情没那么简单!
六万行代码一次性扔出来,社区为什么炸了锅
PhotoSuite的GitHub仓库在发布时只有一个commit,里面包含了整个项目的全部代码。Reddit用户klumpp就留了两个字:“One commit..”。这个反应不是无理取闹,因为开源社区在过去两年里被一类特定现象搞怕了。
一个叫aberdoom的用户解释了这种恐惧的来源:在操作系统开发论坛等地方,突然冒出一大堆人宣称自己“从零开始”写了一个图形操作系统,方式是甩出一个六万行的单次提交,代码里还塞满了破折号注释。这种东西有一个学名,叫“AI slop”,翻译成大白话就是“AI垃圾”。
Sapinski没有回避这个问题。他贴出了自己在私有GitLab服务器上开发一年的截图,直接回应:“我私下开发了一年左右”。他还公开承认代码是“AI辅助的”,但补了一句:“我用JS和TS开发了二十多年,这不是slop”。另一位用户ZeAthenA714分享了自己的做法:他也在私有仓库里开发,但发布时会“开一个全新的repo”,因为“清理git历史太痛苦了,尤其是多个月甚至几年的项目”。
这里出现了一个值得认真对待的认知翻转。公众对“单次提交”的怀疑是合理的——它确实是AI批量生成项目的典型特征。但是,这种怀疑被泛化之后,变成了对所有非增量开源项目的有罪推定。一个开发者如果花了三年在私有仓库里写代码,发布时选择不公开那些“操,又没跑通,第七次”的commit message,这到底是隐瞒,还是正常的发布卫生?
Sapinski自己的说法是,那些commit message“满是脏话”,他不想分享。一个叫Icy-Cup的用户把这个逻辑讲得很清楚:“我不想在准备好之前分享我的工作。这就像出版一本书和分享你所有日记的区别”。
但是,Sapinski也给出了最有说服力的反驳——他反问道:“像‘他妈的又没跑通第七次’和‘忘了’这样的commit message对你有什么用处?”。
这就怪了,开源社区要的到底是代码的透明度,还是开发过程的表演?
PSD承诺的裂缝藏在滤镜菜单的最底下
回到产品本身。PhotoSuite的GitHub仓库里写着,PSD是原生格式,“在PhotoSuite中保存的文件在Photoshop中打开时图层树完好无损,反之亦然”。这意味着双向兼容:从PhotoSuite保存到Photoshop打开,从Photoshop保存到PhotoSuite打开,图层记录、蒙版、混合模式、通道数据、图层效果、智能滤镜堆栈、文字引擎数据、矢量路径全部保留。
一位叫maneek21的用户在评论区提了一个很专业的问题:“1:1是一个很大的承诺。你有没有样例文件展示Photoshop到PhotoSuite再到Photoshop的往返,文字仍然可编辑,智能对象和蒙版完好?”Sapinski的回答很坦诚:“我唯一没有搞定的是cutout滤镜。而且有bug,所以版本号小于1”。
Cutout滤镜是Photoshop里一个边缘检测加颜色量化的效果,用来自动把图像变成色块风格。它不是一个核心功能,但它暴露了一个模式:PSD兼容性的承诺在“大多数情况下”成立,但“大多数情况下”和“1:1”之间的距离,恰恰是设计师日常工作流的断裂点。
ag-psd这个广泛使用的开源PSD读写库的README里列出的限制可以作为参照:不支持图案叠加、不支持智能图层上的部分滤镜、文本图层的实现不完整、垂直方向的文字写入可能导致PSD文件损坏。这些限制不是PhotoSuite的代码质量问题,而是PSD格式本身的复杂性决定的——Adobe从1990年代开始积累的私有格式细节,光靠逆向工程很难穷尽。
但是Sapinski说他已经“在Photoshop和PhotoSuite里用大量的PSD和PSB文件做了大量测试,没有发现可察觉的差异,往返测试也是”。一个叫whatThePleb的用户对此的回应是:“祝你好运,用它编辑超高分辨率RAW照片试试”。
这里有一个需要拎清楚的事实:PhotoSuite在Reddit上发布的是v0.x版本,Sapinski自己标注了“有bug”和“版本号小于1”。一个开发者把未完成的作品公开展示、承认不足、邀请贡献,这本身不构成欺骗。但社区的反应揭示了另一个问题:当一个项目同时宣称“1:1”和“v0.x”的时候,读者的认知负荷被拉到了极限——你到底是让我相信这个产品现在能用,还是让我相信它未来能用?
你的PSD验证清单,比任何承诺都管用
与其争论1:1是目标还是现状,不如做一件更具体的事:拿一张你自己的PSD文件,在PhotoSuite里打开,检查三个地方。第一个是文字图层,看看双击之后能不能直接编辑内容,还是弹出一个“此文字图层已被栅格化”的提示。第二个是图层样式,找一张带投影和渐变叠加的文件,放大到400%,检查阴影边缘有没有出现锯齿或者色带。第三个是智能对象,看看双击之后能不能进入智能对象的源文件编辑界面,还是直接提示不支持。
这三项检查不需要任何专业知识,一个刚学会用Photoshop图层的新手也能在两分钟内完成。如果一个PSD编辑器在这三项上全部通过,那它的兼容性承诺就有实质意义。如果在任何一项上失败,那它目前就只是一个“能打开PSD文件的图片查看器”,而不是“能替代Photoshop的工作流工具”。
Sapinski在回复一个用户的测试报告时说了一句话,值得作为整个讨论的注脚。他说1:1是“目标”而不是现状,然后补了一个表情符号。一个二十五年的JavaScript开发者,用Rust和Tauri搭一个桌面编辑器,把PSD作为原生格式而不是导入滤镜,承认cutout滤镜还没搞定,把版本号停在0.x。这些事实加在一起,指向的是一个比“开源Photoshop”更诚实的描述:一个人试图用一套和Photopea完全不同的技术路线,去解决Photopea在桌面端留下的性能缺口。
Reddit上有一条评论被顶到了比较靠前的位置,来自用户operation6370:“PSD兼容性是让人们留在Photoshop的唯一原因,即使他们想离开。如果你搞定了图层效果和调整图层,这就填补了GIMP至今没有填上的空白”。
这句话说对了一半。GIMP确实没有填上这个空白,Photopea在浏览器里填了一部分但留下了性能天花板,PhotoSuite试图用桌面原生性能把剩下的填上。但是,在用一个具体的PSD文件验证之前,没有人知道那个“剩下的”到底有多大。
Github网址点击原文标题:https://www.jdon.com/95025-photosuite-psd-compatibility-open-source-review.html