PhotoCraft 是一款用纯 Rust 从零打造的开源照片编辑器,定位为 Adobe Photoshop 的"清室重制版"(clean-room reimplementation),包含图层、蒙版、调整图层、文字、矢量、画笔及原汁原味的 PSD 文件支持。完全由 Rust 从零实现,提供原生桌面应用与 WebAssembly 浏览器版本。本次提供的是windows安装版本,支持x86\x64\arm64等不同配置,欢迎需要此款工具的朋友前来下载使用。

PhotoCraft:生产力级编辑器,绝非概念 Demo
PhotoCraft 的核心引擎、编辑工具与文件格式,全部严格依据公开规范实现。
上手即熟悉
菜单、快捷键与面板布局完全符合传统习惯,无缝支持 ⌘J、⇧⌘D 等常用快捷键。
原生高性能
基于 wgpu 的 GPU 合成器(支持 Metal、Vulkan、DX12、WebGPU),结合写时复制瓦片与多线程滤镜。告别 Electron 臃肿,拒绝内嵌网页。
高保真 PSD 兼容
精准读写分层 Photoshop 文档;经 psd-tools 测试集验证,309 个测试文件重保存后可无损还原 307 个的渲染结果。
无损非破坏性编辑
内置 16 种调整图层,包含支持分通道编辑的曲线和带实时直方图的色阶,全面支持蒙版遮罩与自由层级排序。
精准智能选区
选框、套索、魔棒,以及快速选择、对象选择与主体识别——完全本地离线运行,无需云端依赖。
文字、矢量与画笔
支持画布内直接编辑文本,钢笔与形状图层支持渐变填充,画笔引擎原生响应压感、倾斜与旋转。
一、图层与非破坏性编辑
PhotoCraft支持基于图层的图像编辑方式,用户可以将照片、文字、图形和其他视觉元素分别放置在不同图层中,从而独立调整各部分内容。
主要功能包括:
- 图层创建、复制、删除、重命名和排序。
- 图层显示与隐藏,便于管理复杂设计文件。
- 图层蒙版,用于控制图像的显示范围和局部效果。
- 调整图层,用于调整图像的颜色、明暗和整体视觉表现。
- 图层样式,为对象添加阴影、描边等视觉效果。
- 多图层组合编辑,适合海报、封面、宣传图片和数字绘画项目。
通过将不同元素分离管理,用户可以在保留原始素材的基础上反复修改设计内容,减少重复操作。
二、PSD文件兼容与分层文档处理
PSD是专业图像设计中常见的分层文件格式。PhotoCraft支持打开、编辑和保存PSD文档,方便用户处理已有的设计项目。
主要应用包括:
- 打开包含多个图层的PSD文件。
- 编辑图层、文字、蒙版及其他支持的文档元素。
- 调整图层顺序和可见性。
- 保存分层编辑结果,便于后续继续修改。
- 在不同图像处理工作流程之间交换设计文件。
需要注意的是,PSD文件中可能包含智能对象、复杂图层效果、特殊字体或其他高级功能。不同软件对这些内容的实现方式并不完全一致,因此,打开和重新保存复杂PSD文件之前,建议先使用副本进行测试。
三、照片修饰与图像处理
PhotoCraft提供多种基础图像编辑和局部修饰工具,可用于处理日常摄影作品、产品图片及设计素材。
常见用途包括:
- 调整照片的颜色、对比度和整体视觉效果。
- 使用画笔和选区工具处理图像局部区域。
- 修饰照片中的部分细节。
- 对图像进行裁剪、旋转和视图调整。
- 通过蒙版控制局部处理范围。
- 使用支持的修复、移除及相关工具改善图像内容。
不同版本所提供的具体工具可能有所差异。对于依赖人工智能生成式填充、复杂内容重建等高级功能的工作流程,应以实际安装版本的功能为准。
四、选区与局部编辑
选区工具能够帮助用户限定图像处理范围,避免修改整张图片。PhotoCraft通过多种选区方式,为精细编辑提供基础支持。
主要用途包括:
- 矩形、套索等选区操作。
- 对指定区域进行复制、移动或删除。
- 配合蒙版实现局部颜色调整和效果控制。
- 结合裁剪工具重新构图。
- 对需要单独处理的图像对象进行分区编辑。
在海报制作、产品图片修整以及复杂图像合成中,选区工具能够帮助用户更精确地控制编辑范围。
五、画笔与数字绘画
PhotoCraft支持画笔绘制和多种绘图操作,适合进行数字绘画、局部润饰以及图像合成。
主要功能包括:
- 使用画笔在图层上绘制内容。
- 调整画笔的大小、形状和相关属性。
- 配合图层蒙版进行局部擦除或显示控制。
- 利用支持的笔刷资源扩展绘画方式。
- 结合图层与混合效果制作复杂的视觉作品。
对于需要从其他图像编辑软件迁移的用户,PhotoCraft还提供对部分常见笔刷资源的支持,但不同笔刷格式和特殊参数的兼容程度可能有所不同。
六、色彩调整与图像校正
色彩处理是图像编辑的重要环节。PhotoCraft提供调整图层及相关图像处理能力,可用于改善照片的色彩表现和明暗关系。
主要用途包括
- 调整图像的色彩与整体色调。
- 优化画面的明暗和对比度。
- 根据创作需要改变图像的视觉风格。
- 将调整效果与原始图像内容分开管理。
- 结合蒙版控制调整效果的作用区域。
对于产品摄影、宣传物料、社交媒体配图和数字艺术作品,合理使用这些功能能够帮助用户获得更加统一的视觉效果。
七、文字排版与图形设计
PhotoCraft支持文字和矢量元素编辑,可用于制作包含文字、图形及图像素材的综合设计作品。
主要应用包括:
- 在图像中添加标题、说明文字和装饰性文字。
- 调整文字内容及相关排版属性。
- 通过图层管理文字和背景素材。
- 将矢量元素与位图图像组合使用。
- 制作宣传海报、活动封面、社交媒体图片和简单品牌视觉素材。
对于字体控制、复杂文字排版和特殊字体效果等需求,建议在实际版本中确认相关功能的完整程度。
八、裁剪、旋转与构图调整
PhotoCraft提供图像构图调整工具,帮助用户修改画面的尺寸、方向和视觉布局。
主要功能包括:
- 裁剪图片,突出主体内容。
- 调整图像的显示范围。
- 旋转画布视图,方便检查不同方向的图像内容。
- 根据设计用途重新组织图像构图。
- 配合选区和图层完成局部调整。
这些功能适用于摄影图片优化、商品图片处理、网站配图制作和各类平面设计任务。
九、图像格式导入与导出
PhotoCraft支持多种图像文件格式,并持续扩展文件兼容能力。除了PSD分层文档之外,项目还在逐步完善其他常见图像格式的读取和处理支持。
在较新的开发版本中,软件陆续增加或完善了SVG、OpenRaster、HEIC等格式相关能力,具体支持范围应以所使用版本为准。
格式兼容能力主要用于以下场景:
- 导入外部图片作为编辑素材。
- 打开已有的分层设计文件。
- 将编辑结果导出为适合后续使用的图像文件。
- 在不同设计工具之间交换素材。
- 处理包含多个图层的图像项目。
需要注意,能够导入某种格式并不意味着其所有高级特性都可以完整保留,尤其是复杂的分层文件和包含特殊效果的设计文档。
十、GPU加速与多线程处理
PhotoCraft采用基于wgpu的图形渲染技术,能够利用不同平台的图形接口处理画布显示和图像渲染任务。
主要技术特点包括:
- 利用GPU加速画布合成和显示。
- 通过多线程机制执行适合并行处理的任务。
- 采用分块式图像处理机制,改善局部编辑时的数据管理效率。
- 根据不同操作系统使用相应的图形后端。
- 在部分GPU渲染路径出现问题时,提供软件版本支持的CPU渲染回退机制。
实际运行速度取决于图像分辨率、图层数量、滤镜复杂程度、显卡驱动和系统资源。GPU加速并不意味着所有操作都能获得相同幅度的性能提升。
十一、命令行与自动化处理
除图形界面之外,PhotoCraft还提供面向自动化工作流程的相关能力,方便开发者和技术用户将图像编辑操作整合到脚本或其他工具中。
主要应用包括:
- 通过命令行执行支持的图像处理任务。
- 将部分编辑操作纳入自动化处理流程。
- 对多个文件执行重复性处理任务。
- 通过JSON控制接口与外部程序交互。
- 利用MCP服务接口连接支持该协议的AI代理或其他自动化工具。
这类功能适合需要批量处理图片、构建设计自动化流程或进行软件集成的用户。需要注意,自动化接口的具体命令、权限范围和可执行操作取决于软件版本及运行配置。
十二、跨平台运行与开源特性
PhotoCraft采用Rust开发,支持多个桌面操作系统,并可通过WebAssembly构建网页运行版本。
其主要特点包括:
- 提供Windows、macOS和Linux平台的桌面构建版本。
- 部分版本支持FreeBSD等其他平台。
- 可根据系统架构选择对应安装包。
- 项目采用开源方式开发,便于开发者了解代码和参与改进。
- 桌面版与网页版本能够共享部分核心编辑能力。
开源并不等同于没有使用限制,具体的修改、分发和商业使用条件仍需以项目实际采用的许可证为准。
PhotoCraft 是什么?
PhotoCraft 是一款遵循 clean-room 原则、使用纯 Rust 从零实现的开源图像编辑器。完整支持图层、蒙版、调整图层、图层样式、文字排版、矢量形状、画笔引擎以及原汁原味的 PSD 文件格式。
它能完全替代 Photoshop 吗?
目前尚不能。PhotoCraft 仍处于早期 alpha 阶段:虽已覆盖大部分基础框架,但在 AI 生成功能、约 20 种特定编辑工具、高级排版引擎及第三方插件兼容性上仍有差距。详情参见路线图规划。
支持哪些运行平台?
原生支持 macOS、Windows、Linux 和 FreeBSD 平台,同时可通过 WebAssembly 直接在浏览器中运行。Linux 端提供 AppImage、deb、rpm、tarball 与 Flatpak 等多种打包格式。
它能直接打开真实的 PSD 文件吗?
可以。PhotoCraft 能精准打开、编辑并保存分层 Photoshop 文档;在 psd-tools 测试集 309 个文件验证中,有 307 个能在重新导出后无损还原渲染结果。未完全建模的元数据也会完整保留而不被丢弃。
Agent 如何调用和驱动它?
所有的软件操作均抽象为统一命令注册表中的 500+ 条命令。你可以通过图形界面、photocraft-cli 命令行、带鉴权的 JSON 控制通道或 MCP server 进行调用。
v0.17.0版本
包:切勿用另一个链接覆盖一个链接的副本,在 #9185 中列出一次缺失链接
通过#9199修正HiDPI显示器上的CPU像素网格笔幅
图像旋转 › 任意转动未关联图层遮罩(#9201),由#9203
修正(CMS):忽略 .look XML 注释中的标签 (#9109) 由 #9210 中
修正(CMS):#9215 中至少以 12 位刻度(#9121)读取无标题 .3dl 表
修正(引擎):用画布(#9239)转动形状的渐变笔触,在#9240中
fix(ui):Hue/Saturation 的光谱条随面板(#9242)在 #9250 中拉伸
修复(UI):用色片点击,用任意工具(#9238)重新着色选中的类型和形状,由#9253
feat:新文档可在#9258中以美术板(#9086)开始
裁剪:全屏模式下 Match Canvas 是 #9295 中的黑色粘贴板(#9294)
裁剪与调整照片只处理#9298中选出的#9297
修正(算法):Dehaze 在 #9316 中 #9273 在黑暗物体旁不留下明亮光环
修复(引擎):定义并导入的模式在重启(#9317)后仍存,由#9318保存
粘贴:中心像素从另一份文档(#8945)复制,作者为#9353
feat(ui): 浏览......用于图像处理器和批处理(#9357)文件夹,由#9360
测试:智能过滤器栈缓存测试在其独立二进制文件(#9376)中运行,在#9377中运行。
全部揭示:忽略#9380中被抹除的完全透明像素(#9379)
SVG:文本将每个字体文件读取一次,而不是每个字形(#9406)一次,而 #9407 中
导出数据集为文件时,输出会在#9422中保持在选定的文件夹(#9420)中
插件:拒绝在 #9442 中声明两次参数的 manifest(#9441)
引擎:assets_dir在#9391中对assets_dir(#9390)的文档评论
fix(atn): 保留未受支持的事件类型,在 #8509 中
保留的复合图会遵循文本伽马线并释放其内存;GPU 时序在 #8522 中通过 OOM 重试(#8520, #8521)得以存活
通过 #8664 修正保存智能对象的布局基准设置
在 #8690 中合并的八个修正点,但没有一个修正
在解析 #8893 之前,拒绝带有过多 JSON 值的 .pcraft manifests
ora:测试Soft Light导出为svg:soft-light,格式为#9028
滤镜画廊:⌘+ / ⌘− / ⌘0 / ⌘1 放大预览,像 #9107 中的 Liquify 一样步进
通道面板:拖拽 alpha 通道以重新排序(#9163),在 #9168 中
修复(ui):在 #9178 中最后选择的预览标签页(#9174)重新打开了网页保存
编解码器:将 Amiga IFF (.iff) 保存为 24 位 ILBM,存于 #9080
fix(cms):通过 #9129 中的字节顺序标记读取 UTF-16 LUT 文件
fix(ui): 属性变换显示形状的路径,而非 #9181 中的笔画
贡献者:VoiceLessQ 显示名来源:#9264
贡献者:在#9369添加我的名字(erenova)
CI(DEPS):通过 #8979 中的 [bot] 将动作组跨越 1 个目录,并进行 3 次更新
安全:在 #3938 中钉选并验证 Windows 签名客户端(#2936)
迁移 PhotoCraft 到 egui 0.37,在 #9363 中
专长(更新):通过 #9322 添加启动自我更新提示词模态
构建:由 #9548 将 craft-update 标记为 craft-libs 主版(495E597)
家务(DEPS):刷新 #9558 中安全依赖的提升
任务:通过 #9044 解决 SonarCloud 的维护性问题
集成批次8:主板上37个社区PR评审者,作者为#9386
裁剪工具:右键点击待裁剪,打开菜单:预设、叠加、取消并裁剪(#6620)
编解码器:#7415 中读取和写入 TIFF 额外采样(定点和 alpha 通道)
PERF(photomerge):通过 #7873 记录多频段时序和峰值内存
PSD:在路径上输入,打开路径并保存回文件的 Txt2(#7962),在 #8175 中
RAW:打开有损DNG(浮点JPEG XL原始数据),然后退回到JPEG XL预览,而不是#8402里那个小缩略图(修正#8125)
菜单栏:空格不再打开文件 › Alt+zoom 后新建,完成 #6256 修复(#7688),在 #8679 中完成
fix(io):DDS 导出时会在 #8776 中写入文档的 alpha 通道
通过 #8846 修复硬圆形预设中堆叠的刷尖伪影
PSD:识别 Photoshop 的合并透明度标记,编号为 #8877MTrn
PSD:Photoshop 极性中的点通道;早期PhotoCraft版本的PSD保留了#8885的墨水
fix(#9098):在 #9128 中保留分层 TIFF 文本描述符中的 PSD 字节顺序
在#9139中重建直方图面板
分层TIFF:用#9148写入Photoshop的全局图层遮罩块(#9095)
修正(cms):用 1D 形状器和 3D 表格加载(#9177)在 #9183 中解析 .cube 文件
修正(UI):字体菜单在当前家族最近的行(#9160)中由#9197打开
修正(ui):斜面和浮雕高亮和阴影模式是#9370中不同的下拉菜单(#9368)
RAW:非有限黑色层次不再使AHD解读在#9446中惊慌失措
RAW:分组为10/12/14位解包,保留单条缓冲区,原位解组,#9449
RAW:默认渲染的 #9452 按块分层的最终编码阶段
RAW:develop_half,#9454 中融合半尺寸预览冲洗(#9433 的一部分)
通过在#1199中添加可选的本地模型,用于主体遮罩和对象选择
艺术史画笔在#1610中Y组飞出
通过 #3316 添加介于100%到125%之间的中间界面比例预设
历史面板:新快照对话框及#3567中的第一个快照(#2966)
Mixer Brush:在笔触过程中渲染混合颜料,并将实时结果提交到 #3627
集成:线路允许代理控制和控制端口(#204),见#4097
界面:动画效果遵循系统设置,或在#4573中开启或关闭
Camera Raw:校准面板、自动、原始侧车和实时相机RAW默认值(FILE-215-11),由#5128提供
perf(算法):内容感知比例在 #5236 中快了 2 倍,在 P28 预算内(#211)
混合模式按键:Shift+Alt+字母选择模式,就像Photoshop中#5478的那样
#5504中克隆印章、图案印章、历史刷、治疗和油漆桶的模式下拉菜单
修复(缩放):恢复顺滑轮回放,#5547
PERF(camera-RAW):在 #6923 中开发预览的每像素阶段,在 GPU(#6916) 上
功能:渐变涂料到形状工具,任何形状都可以有渐变笔触。作者:#7203
刷子:大笔尖在#7218中平行地光栅化、积累和合成
裁剪:内容感知填充(Content-Aware Fill)将像素隐藏在 #8179 中,未删除裁剪(#8060)
fix(xtask):从#8658中钉顶的清单中推导出记分卡语料库计数
io:TIFF alpha和spot通道,PSD输出在#8878中未变
fix(ui): 类型选项栏对齐在#9179中跟随目标段落 by
面板:转到#9366中craft-ui的共享对接
面板:#9575中对共享对接和egui 0.37合并的后续回顾
绒毛:清除新代码 S8855/S8856/S8862/S1612/S7688/S7679 的发现,来源为 #9576
面板:在#9583移除旧底座的图纸代码
在#9518中保留#9363之后的区域感知CJK字体和迁移回归
重构:#9577 中,应用、阅读亲和文本和扭曲身份的认知复杂度降低
CI: 要求 Nextest 0.9.150 by #9749
重构:共享模块布局(craft-contrib#20) 作者:#9758
表演(选曲):窗户招牌和套索羽毛面罩,作者编号#9794
扩展、收缩和边界:裁剪到选区,在#9697中对小选区快40×
重构(选段):从#9802中“模糊”中取羽毛长度
修复(UI):在#9849中搜索未匹配后,下拉菜单会恢复
PERF(SAVE):更快的.pcraft和PSD存档,字节相同输出,由#9877完成
集成批次:主线有22个PR,由#9880
裁剪:X带有预设比例,将画面旋转,而不是缩小(#7057),在#7058中
测试:效果图死锁看门狗每次渲染等待120秒,而不是#9340中所有101秒
操作:保存并阅读实验室轻盈频道,编号为 #9384 通过 #9385
偏好设置:生成器复选框显示启用生成器,如参考应用(#9392)中的#9393
颜色面板:色轮能将面板的默认高度(#9394)按#9395
SVG:嵌入的数据-URL SVG在#9398中获得嵌套深度检查(#9397)
XML:深度嵌套的ORA、KRA、Camera Raw XMP、.kys和图层XMP是错误,不是崩溃(#9419),由#9421
自动化:通过 #9425 拒绝请求路径中的每个 Windows 设备名(#9424)
自动化:拒绝将写根(#9439)中的非图像文件替换为#9445
插件:拒绝没有函数但字节多的代码段,而不是在 #9680 中惊慌失措地(#9679)
CMYK:测试参考将完全覆盖的字体像素墨水(#9688)保持在 #9689 中
历史:历史选项,允许非线性历史和不可操作的可见性更改(#2966),由#3535提供
PSD保存:选择PSB时按编码大小,而不是按#5287中的原始估计值(#5285)
通道:CMYK通道复制、加载、分割并合并为音调,而非#5789的墨水(#5787)
合成:透明度形状 图层关闭时,将图层的 alpha 混合为 填充 #5837 中的特殊八(#5692)
PSD:帧图层在#5890中保持其笔画(#4381)
PSD:漫反射、描摹轮廓、结晶和点描化智能滤镜,在 #6303 中打开并保存,像 Photoshop (#6302) 一样
路径:从路径中选择路径时,#6353 中的路径(#6079)被取消选择
颜色查找:PSD存档保留一个.3dl/.look的LUT文件,加载在#6723中(#6544)
粘贴:以 SVG 标记粘贴像素的图纸复制到 #7154
自动保存:一次性替换一个恢复侧车,确保列表不会错过或将#9034的恢复量翻倍于#9036
集成批次:主线 21 个 PR,由 #9775 完成
专长(类型):通过#3558添加可编辑字体大小、引导和跟踪预设菜单
修复(应用):在 #3609 中添加缺失的支持文件格式到 Save As(#3400)
图层:新增组对话框和修饰符;新图层进入一个开放组,并在 #4329 中加入其剪辑组
feat(transform):在#5405中按住Ctrl/Cmd时显示失真和偏斜光标指示器
字体菜单:收藏、最近字体、类别及相似字体筛选,实时预览于 #6526
PSD/PSB在未读取整个文件的情况下打开:通道数据按解码方式读取,以带状形式(#5106)被#6583读取
压缩(perf):使用带有运行时检测的zlib-rs,位于#7689
修正(编解码器):在分配 #8704 前,请将头部尺寸与文件大小对比
fix(ui):移除工具尾迹的染色,每次划程去除;灌木小径遵循硬度(#8916)由#8923
fix(io):通过 #9031 保留 PSD/PSB 中的半色调图案智能滤波器
性能(GPU):NVIDIA 自家内存在 Linux 上,因此多层文档避免了 CPU 预算的损失(#5973),位于 #9042
批处理:文件夹源使用PhotoCraft在#9097中开启的所有格式
色彩面板:方块模式在#9154中颜色无法打印时(#8672)会发出警告
feat:Layers 的美术板 根据 #9262 绘制了自己的尺寸(#9087)
特性:路径上的类型在被 #9321 编辑(#9114)时沿其路径运行
fix(ui):除非在#9444中开启了“记住设置”(#9423),否则选择和遮罩从默认状态开始
RAW:AHD解读,重复使用平面刮痕,指令数量减少约1.6倍,#9450
RAW:逐条开发默认渲染带,#9455中不包含F32 RGB帧
fix(ui):Camera Raw 的 Color Mixer 色调轨道显示了 #9601 附近的相邻色调
自由变换:显示 #9678 中尺单位(#9400)中的实时 W/H 读数
Paint.stroke: fill: True 在 #3779 中填充封闭区域(#3659)
Windows 安装策略:PhotoCraft by #9756
表现:CPU合成器的悬崖行、高级混合、调整切换、超预算和巨型文档(#7494),由#9565提供
通过 Clippy 在 #9770 强制执行 Rust 编码标准
渲染路径:有地方记录了为什么视图离开了 GPU(#9328),在 #9566 中
Xtask的表现:基线知道它有多可信(#7494),作者#9564
重构:拆分超大滤镜、调整、裁剪和效果构建器,作者为#6463