PhotoCraft v0.20.1 更新:更多 Photoshop 动作步骤可以播放,直线工具能画箭头
PhotoCraft v0.20.1 能对应的 Photoshop 动作事件从 117 条增加到 167 条,包括滤镜库全部 47 种效果,以及扭曲、渲染、风格化和像素化滤镜;动作面板可新建组,能载入较旧和本地化的 .atn 文件;直线工具新增箭头,Linux 会归还内存。没有 v0.20.0。
v0.20.1 于 2026 年 11 月 3 日发布,距 v0.19.0 三十小时。它就是 v0.19.0 之后的下一版:并没有 v0.20.0 这个发布或标签。版本号曾经设为 0.20.0(24d4f4d),但发布流程在 Linux riscv64 上失败了(构建记录)。打包脚本会在模拟器里运行交叉编译出的 photocraft-cli --version 来检查它;而这一版新的 Linux 内存设置会让 PhotoCraft 在启动时重新启动自己一次(详见“主要变化”),在模拟器中,这次重启被交给了宿主系统,宿主系统无法运行 riscv64 程序,检查就失败了。这次构建在生成发布之前被取消。在 0.20.0 的提交之后大约 20 分钟,一个为该检查设置环境变量的修复(eed8bd2)和 0.20.1 的版本号(327c4cc)一起推送,这次构建成功了。这个修复只改了打包时的检查,没有改应用本身。
官方更新日志列出了 31 个合并的 PR,来自 15 位贡献者,其中 6 位是第一次参与。其中两条是动作方面的“集成批次”:#10535 包含 9 个,#10776 包含 14 个,这 23 个在列表里也都有单独一行,所以新增的 PR 是 29 个。没有 PR 在打标签前被回退,也没有已在之前版本发布过的;#7561 只添加了测试。README 里的工具数是 68 个,与 v0.19.0 相同,记分卡没有变化。
这一版主要围绕 Photoshop 动作。PhotoCraft 能对应到自身命令的 Photoshop 事件表,从 v0.18.0 和 v0.19.0 的 117 条增加到 167 条;其中“从图层建立帧”这一条仍然只会以关闭状态载入。滤镜库的全部效果、扭曲、渲染、风格化和像素化滤镜,以及“移除背景”“天空”等较新功能的步骤现在都能播放,较旧的和本地化 Photoshop 存的 .atn 文件能载入了,动作面板也能新建动作组。这些数字来自代码里的事件表;上游的 docs/atn.md 写的是 144 条,落后于代码。动作以外,直线工具可以画可编辑的箭头,Linux 上关闭的文档会把内存还给系统,扫描仪生成的 YCbCr TIFF 也能打开了。网页版仍然无法启动,详见下文“网页版”。PhotoCraft 仍处于早期 alpha 阶段,使用中难免遇到问题。
主要变化
- 动作支持滤镜库的全部 47 种效果:录制的滤镜库步骤现在对全部 47 种效果都能按对应的效果播放,参数名、范围和默认值都与 Photoshop 一致;v0.18.0 中只有“喷溅”可以。一个步骤里叠加了多个效果时,仍保留为 Photoshop 步骤(#10632)。
- 动作中可以播放的滤镜和命令多了很多:以下菜单项录制的步骤现在会载入为 PhotoCraft 命令,可以播放,也能存回:
- 扭曲:挤压、极坐标、球面化、旋转扭曲、波浪和水波(#10629)。渲染:云彩、分层云彩、纤维和镜头光晕(#10620)。
- 风格化:查找边缘、曝光过度、凸出、等高线、风和拼贴。像素化:彩块化、碎片、彩色半调、铜版雕刻、马赛克和点状化(#10618)。
- 逐行、NTSC 颜色、HSB/HSL、自定、平均,以及移去黑色杂边和移去白色杂边(#10631)。
- 油画、智能锐化、焦点区域、选择 › 天空和移除背景,Photoshop 只用名称记录这几个步骤(#10627)。分离通道、合并专色通道、陷印和匹配颜色(#10630)。
- 添加到选区、从选区减去、与选区交叉,贴入和外部粘贴,渐隐,链接图层,分布,定义图案,以及较旧的“删除图层蒙版”和“合并图层”事件(#10628);选择单个颜色通道(例如青色,#10616);还有 Camera Raw 滤镜,在报告者的动作集中,它让 295 个动作中的 57 个中途停止。用到“校准”、白平衡不是“自定”或其他几项 PhotoCraft 无法重现的控件时,Camera Raw 步骤仍保留为 Photoshop 步骤(#8714)。
- 对应的步骤保留各自的设置:围绕某个角录制的变换不会再变成围绕中心播放,新建图层保留剪贴蒙版设置,组名、不透明度、混合模式和颜色标签都会保留;PhotoCraft 以前写出的几个 Photoshop 不认的事件代码也已改正(#10702)。图像大小的“缩放样式”、转换为配置文件的“使用仿色”“拼合图像”和“栅格化”选项、内容识别填充的设置、粘贴图层样式和“粘贴为”都会保留并照此播放(#10704)。按序号指定图层、文档或图层复合的步骤也能播放了(#10753)。
- 较旧的和本地化的动作文件:以前无法载入的第 12 版
.atn文件现在可以载入,PhotoCraft 保存时仍写第 16 版(#10743)。本地化的 Photoshop 会用自己的代码页保存步骤名称,例如中文 Windows 上的 GBK、日文的 Shift_JIS;这些名称现在能正确显示,不再是乱码。比如中文 Photoshop 存下的“可选颜色”这样的步骤名称,以前会显示成乱码。PhotoCraft 会自动判断代码页,文件里的字节保持不变(#8327)。 - 新建组,一次载入多个文件:动作面板新增 Photoshop 那样的文件夹按钮,面板菜单里也有“新建组…”,用来建立一个空的动作组(默认名为“Set 1”);“新建动作”会录制到选中的组里,选中一个组时点“播放”会播放整个组(#10459)。“载入动作”可以一次选择多个文件;其中一个失败时,其他文件照常载入,结果提示会列出失败的文件(#10601)。详见动作指南。
- 直线工具可以画箭头:直线工具的选项栏新增“箭头”菜单(齿轮按钮):起点和终点、以像素计的宽度和长度,以及 0 到 100% 的凹度。画好的箭头仍是实时形状:可以在属性面板中修改箭头和粗细,“设为默认值”会把这个箭头的设置用于以后新画的箭头。变换之后箭头仍可编辑;PSD 文件在读取和写入时都会保留 Photoshop 的直线箭头设置(#9259)。详见工具指南。
- Linux 会归还内存:以前关闭一个大文档后,它占用的内存仍留在 PhotoCraft 进程里,最初的报告中约有 2 GiB。现在在使用 glibc 的 Linux 上,PhotoCraft 和
photocraft-cli会在启动时带着MALLOC_TRIM_THRESHOLD_=131072重新启动自己一次,释放的内存就会还给系统:在项目的测试中,关闭一个 5400 × 7200 的文档后,内存占用从 459 MiB 降到 21 MiB(#10515)。大块缓冲区现在会被重复使用而不是每次重新分配,所以这项设置不会拖慢滤镜;在项目的基准测试中,保存.pcraft慢了约 11%,曲线预览慢了约 13%,其余都在误差范围内(#10514)。
新工具与新功能
- 动作方面的小改动:图案步骤会先按 ID 查找已安装的图案,再考虑同名的图案(#7642);自然饱和度调整图层按 Photoshop 自己的类名载入(#8858);描边步骤会写出保持默认值的设置(#10424)。严格模式保存动作组时,只改了部分参数的色阶编辑,以及指名某个图层的调整编辑会被拒绝,因为 Photoshop 的事件存不下它们,而不是写出不同的内容;在动作面板中“存储动作”时则会略过这些步骤(#10417、#8736)。
- Linux 标题栏:打开“系统标题栏”设置后,GNOME 的 Wayland 会话中现在会显示最小化、最大化、关闭按钮,也能调整窗口大小。Linux 上默认仍使用 PhotoCraft 自己的标题栏(#6266)。
文件格式
- TIFF:扫描仪和复印机常输出的 JPEG 压缩 YCbCr TIFF 现在会按 RGB 打开,不再报错;支持 8 位和 16 位,并保留嵌入的颜色配置文件。色度经过子采样的未压缩 YCbCr,以及旧式 JPEG(压缩方式 6)仍会报错(#10319)。
- PSD:直线形状保留箭头,详见“主要变化”(#9259)。
.pcraft:文件包的外层结构现在来自与其他 Craft 应用共用的库。保存出的文件与以前逐字节相同。唯一的变化是:如果文件包的清单把缩略图写成thumb.png以外的名称,或把合成图写成composite/preview.png以外的名称,会被当作损坏的文件拒绝。PhotoCraft 从不写其他名称,所以它保存的文件不受影响(#10724)。
各格式能否打开、保存,详见文件格式指南。
自动化(CLI 与 MCP)
actions.load新增encoding参数,指定 8 位步骤名称的编码(默认auto,也可以写gbk、shift_jis、windows-1252等),并在结果中返回实际使用的编码(#8327)。actions.newSet新建空的动作组,actions.record接受set参数(#10459)。CLI 也能识别没有.atn扩展名的第 12 版文件(#10743)。shape.create和shape.edit为直线新增arrowStart、arrowEnd、arrowWidth、arrowLength和arrowConcavity参数(#9259)。edit.convertToProfile新增dither、flatten和rasterizePlaced(默认都为 false),image.imageSize新增scaleStyles(默认 true),决定图层效果是否随像素一起缩放(#10704)。
配置和示例见 MCP 与 CLI 指南。
网页版
v0.20.1 网页版无法启动。 它和 v0.17.0 到 v0.19.0 有同样的问题:app/photocraft-web.js 会从 app/snippets/… 加载一个小脚本,但压缩包只在根目录放了 snippets/ 文件夹,所以放在普通静态服务器上时,浏览器请求 app/snippets/eframe-…/inline0.js 得到 404,页面就一直停在“Loading PhotoCraft…”。#10092、#10487、#10491 和 #10590 都还未解决,修复用的 #10248 也还没有合并。据报告者说,把 snippets/ 复制到 app/ 里就能启动。
因此,本站的在线编辑器继续运行 v0.16.0 网页版,直到修复后的版本发布。
供参考:v0.20.1 网页版压缩包为 13,692,037 字节(13.1 MiB),v0.19.0 是 13,433,636 字节。应用本体是一个 gzip 压缩的分块 app/photocraft-web-*.part-aa,大小为 13,586,502 字节(13.0 MiB);解压后为 30,332,277 字节(28.9 MiB),v0.19.0 是 29,891,631 字节。自行部署的方法见网页版页面。
问题修复与稳定性
- 内存:除了 Linux 上的改动,图块、合成和滤镜用到的大块缓冲区在所有平台上都放进一个有上限的池子里重复使用;关闭文档时,或闲置 2 秒后,池子会被释放(#10514)。
- 动作:载入或保存时丢失设置的那些对应步骤已经修好,详见“主要变化”(#10702)。
更多已知问题和解决办法见故障排查指南。
升级前需要知道的变化
- 没有 v0.20.0。 版本号从 0.19.0 直接跳到了 0.20.1。
- 在 Linux 上,PhotoCraft 启动时会重新启动自己一次。 进程 ID、启动参数和环境变量都保持不变,PhotoCraft 启动的其他程序也会继承
MALLOC_TRIM_THRESHOLD_。如果你自己设置了MALLOC_TRIM_THRESHOLD_或其他 glibc malloc 设置,PhotoCraft 会保留它,也不会重新启动;想关闭这项改动也是用这个办法。macOS、Windows、musl 和网页版不受影响(#10515)。 - 还不是所有步骤都能播放。 脚本、插件滤镜、叠加了多个效果的滤镜库步骤,以及其他尚未对应的步骤,仍会载入为 Photoshop 步骤,播放到那里会停下并显示步骤名称。严格模式保存时,会拒绝少数 Photoshop 格式存不下的编辑(#10417、#8736)。
- 空的动作组退出后不会保留,里面有了动作之后才会被记住(#10459)。
- 网页版无法启动,本站的在线编辑器暂时继续使用 v0.16.0,详见上文“网页版”。
- Windows MSI 安装版的“更新并重启”。 点击后只重启、什么也没安装的问题(#10477)仍未解决。遇到这种情况,请从 Windows 下载页 下载 v0.20.1 的 MSI 手动安装一次。
- Windows 7 和 8:PhotoCraft 仍然需要 Windows 10 或更新版本。
如何升级
前往下载页获取 v0.20.1:Windows、macOS、Linux 或网页版(目前无法启动)。这次发布的 32 个文件与 v0.18.0 和 v0.19.0 相同,可以用 SHA256SUMS.txt 校验。Flatpak 请继续使用 .flatpak 包;发布流程推送到 GitHub 容器仓库的 OCI 镜像不能公开拉取。请只从官方 GitHub Release 下载,不要使用第三方镜像或转载的安装包。如果你已经在用 v0.19.0 或 v0.18.0,更新提示可以直接为你安装 v0.20.1。如果你是从 v0.18.0 或更早的版本升级,也请看看 v0.19.0 的更新说明;从 v0.17.0 或更早的版本升级,还请看看 v0.18.0 的更新说明。
完整更新日志(含全部合并的 PR):GitHub 上的 PhotoCraft v0.20.1。