PhotoCraft 的 PSD 支持是一个独立的 crate,基于 Adobe 的公开规范编写,并通过与现实文件语料库进行测试。
- 忠实的往返:打开并重新保存文档时,psd-tools测试集309个文件中有307个渲染相同,在我们混合的ag-psd/psd-tools集合中,170个文件中有169个(用 ,取回psd-tools集),还没建模的(原始块、描述符、额外文件)会被保留而非丢弃。重新保存的文件与其源文件的字节不完全相同:PhotoCraft 会重写图像资源、图层记录和复合文件。只有独立的 crate 在解析和写入文件时,无需文档模型,才能逐字节(字节)重现每个可解析的语料库文件字节。
crates/io/tests/corpus.rscargo xtask corpus --psd-toolsphotocraft-psdcrates/psd/tests/corpus.rs - 匹配的像素:复合预言机将我们的渲染与Photoshop合并后的图像进行比较,涵盖渐变插值(经典、感知和线性)、图层效果、形状笔触、裁剪和填充透明度。
- 大型文件:PSB、16位和32位文件,以及CMYK和实验室文档,都是原生打开的。
每个菜单项、工具和对话框都从一个包含500+命令的注册表执行命令。界面、CLI、JSON 控制通道和 MCP 服务器调用的命令都是一样的,所以你点击的任何东西,脚本或 AI 代理都能做。
# Headless: open, edit, save
photocraft-cli run wave.psd \
--cmd filter.sharpen.smartSharpen --params '{"amount":80}' \
--cmd layer.newAdjustmentLayer.curves --params '{"points":[[0,0],[64,48],[192,212],[255,255]]}' \
--out wave-final.png
# Apply one action list to a folder of images
photocraft-cli batch --actions grade.json --in ./raw --out ./graded
# Every subcommand explains itself
photocraft-cli batch --help
# Let an agent drive it over MCP (headless, or bridged to the running app)
photocraft-cli mcp
桌面应用还提供一个认证的仅环回控制通道(),用于检查UI状态、带指针事件的驱动工具以及拍摄屏幕外截图。这个README里的每张图片都是这样渲染的。请参见docs/control-protocol.md。photocraft --control
- 首先是引擎:一个纯数据文档模型和一个命令引擎,顶部是一个薄薄的egui界面。在构建时,24个箱子上强制执行分层。
- 两个合成器:CPU 合成器作为参考预言机,而 wgpu 合成器则将画布放到 GPU 上。他们彼此较量。
- 写入时复制瓦片:256² 稀疏瓦片让 Undo 的廉价大画布变得轻量化,效果贴图是每个层状态缓存的。
- 在浏览器中运行:整个引擎和界面编译成 WebAssembly。
- 无尘室:仅根据公开规范和观察到的行为实现。没有专有代码、着色器或资源。
- 测试次数:超过1700次测试,包括PSD往返、合成生成器、合成预言机和多深度检查。
git clone https://github.com/storytold/photocraftcd photocraftcargo run --release -p photocraft -- image.psd # the desktop appcargo test --workspace # the test suite用于 UI 和 Type 工具的日文字体来自 craft-fonts,这是可选的构建输入(桌面版本版本总是包含)。没有它,PhotoCraft 会使用你系统的 CJK 字体:
git clone https://github.com/storytold/craft-fonts ../craft-fonts
CRAFT_FONTS_DIR="$PWD/../craft-fonts" cargo run --release -p photocraft
新贡献者和AI代理:先从 AGENTS.md 开始,然后是文档/。
macOS、Windows、Linux、FreeBSD 和网页版的安装程序都附带在每个 GitHub 版本中。在 Linux 上,你可以选择 AppImage、a 、an 、tarball 或 Flatpak 捆绑包。该捆绑包需要Flathub提供的免费桌面运行时,Flathub提供安装服务:.deb.rpmflatpak
flatpak install --user photocraft-<version>-linux-x86_64.flatpak # or -linux-aarch64
flatpak run ai.storyteller.photocraft
Flatpak 通过主机的 CUPS 套接字打印(File › Print 直接与其对话 IPP,无需);没有CUPS,也没有打印机,文件 › 打印通过打印门户打开系统打印对话框。参见印刷。lp
AppImage无需安装:第一次运行时会注册启动器图标和菜单,这样Wayland上的底座会显示PhotoCraft的图标。设置跳过那个,看看docs/releasing.md › Linux 以解除。~/.local/sharePHOTOCRAFT_NO_DESKTOP_INTEGRATION=1
在 Wayland 会话中,丢弃在窗口里的文件还没打开:winit 0.30,egui 下的窗口库,没有 Wayland 拖放功能(#386)。使用文件 › 打开,或者在文件管理器中复制图片,用 Ctrl+V 粘贴。要拖放,请在XWayland下启动PhotoCraft:, , 或 。在Wayland上,PhotoCraft会在通知中显示安装命令,直到你关闭它。偏好设置 › 性能 › Linux 显示服务器 = X11 每次启动时都同样执行。在分数显示比例(125%、150%、175%)下,XWayland窗口以较低分辨率绘制并由合成器放大,因此界面在该处会变得模糊;本地的Wayland保持敏锐(#1072)。WAYLAND_DISPLAY= photocraftWAYLAND_DISPLAY= ./photocraft-<version>-linux-x86_64.AppImageflatpak run --nosocket=wayland --socket=x11 ai.storyteller.photocraft
在macOS上,命令行工具的格式为 .该二进制文件与应用使用相同的开发者ID,并由苹果公证。裸二进制文件不能像DMG那样携带订书钉公证票据,所以第一次运行时macOS会在线查看公证结果。你可以自己确认:photocraft-cli-<version>-macos-universal.zip
ditto -x -k photocraft-cli-<version>-macos-universal.zip .
spctl --assess --type install -vv photocraft-cli-<version>-macos-universal/photocraft-cli
# ... accepted, source=Notarized Developer ID
在FreeBSD 14(x86_64)版本中,发布时有一个像 。安装运行时库,然后在那里解压:/usr/local
pkg install libxkbcommon wayland libX11 libXcursor libXrandr libXi libxcb mesa-libs vulkan-loader gtk3 fontconfig freetype2 alsa-lib
tar -xzf photocraft-<version>-freebsd-x86_64.tar.gz --strip-components 1 -C /usr/local
photocraft
维护者:docs/releasing.md 解释了发布是如何构建、签署和发布的。
重要
状态:PhotoCraft 目前处于早期测试阶段,我们希望明确其现状:Photoshop 的大部分功能表面以某种形式存在,但它尚未成为日常专业工作的 Photoshop 替代品。最大的不足是AI/生成功能、缺失的15个工具、排版和专业流程的深度,以及插件兼容性。每个 Photoshop 菜单项都绑定了一个命令(docs/parity-checklist.md),但那是测量布线,而不是行为。公平的、逐维度的图景以及我们下一步的走向都在路线图和宇称评估中。请做好有粗糙问题的准备,请提供文件(包括你的操作系统、文档大小、图层数和截图)。你也可以在Discord上告诉我们到底坏了什么。
这些安装器由社区成员维护,而非PhotoCraft团队。
在Gentoo上,::snakebyte覆盖层将Linux版本打包为:media-gfx/photocraft-bin
eselect repository add snakebyte git https://github.com/switch87/snakebyte-overlay.git
emaint sync -r snakebyte
echo 'media-gfx/photocraft-bin ~amd64' >> /etc/portage/package.accept_keywords/photocraft
emerge --ask media-gfx/photocraft-bin
原创文章,作者:云东方,如若转载,请注明出处:https://www.yundongfang.com/Yun1330.html