Skip to content

Releases: Zenodeng/Phos

v3.1.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 14:27

Phos 3.1.0

品牌改名后的首个发布版本:RawForge 正式以 Phos 之名发布,并修复蒙版控制点拖动时参考线漂移的问题。

安装:下载 Phos-macOS-apple-silicon.zip,用 SHA256.txt 校验后解压,把 Phos.app 拖到 /Applications。
首次启动会被 macOS 拦截(应用未公证)——到「系统设置 → 隐私与安全性」底部点「仍要打开」,或执行:

xattr -dr com.apple.quarantine /Applications/Phos.app

从旧版 RawForge 升级:旧的 .rawforge.json 旁档、Application Support/RawForge/presets.json 预设和导出目录设置都会被继续读取,已有编辑不丢失。


蒙版控制点拖动修复 / Mask handle drag fix

拖动渐变蒙版的控制点时,三条参考线会整体「飘走」。

根因是控制点上报 position + v.translation:而 translation 是从按下那一刻算起的累计位移,
position 又随蒙版更新每帧重算,edit() 再把增量加在当前蒙版上——同一段位移被反复累加。
实测拖 120px 时控制点跑出 240px,鼠标事件越密偏得越多(细粒度下可达 30 倍)。

改为以「按下点 + 按下那一刻的蒙版」为基准(新增 MaskDragSession),每次移动用绝对坐标重算。
线性起/终点、中心移动、旋转柄、径向三手柄一并受益。

蒙版交互 / Mask interaction

  • 选中线性或径向渐变蒙版时自动切到位置调整模式,控制点、参考线与旋转柄立即可见。
  • 清理蒙版叠加层的调试输出,发布版本不再向 stdout 打印诊断信息。

品牌改名 / Rebrand

  • RawForge → Phos:源码目录、应用标识 com.zeno.phos、显示名、可执行文件名、打包产物统一改名。
  • 兼容读取旧 com.zeno.rawforge 设置、.rawforge.json 旁档与旧预设目录。
  • 历史标签与 v3.0.1 及更早的发布记录保持不变,从本版本起使用 Phos 名称发布。

构建与测试 / Build & test

  • build.sh 默认安装到 /Applications/Phos.app;先在暂存目录组装签名再整体替换,
    避免覆盖正在运行的二进制(ETXTBSY);并同步刷新项目内副本。
  • 新增 Tools/MaskDragTest.swift 与 Scripts/test_mask_drag.sh:纯几何回归测试,不需要照片素材。
    判据是「结果不随鼠标事件数漂移」——5 / 61 / 1200 次鼠标事件必须给出同一结果。
  • 修复 CI 构建失败:蒙版参数(Double)与 CGPoint / CGSize(CGFloat)混算时
    cos / sin / atan2 会同时匹配 CoreGraphics 与 _math 两个版本,
    在完整 Xcode SDK 上报 ambiguous use of 'cos'。几何模块内部已统一按 Double 计算,语义不变。

已知限制 / Known limitations

  • 1:1 像素视图未挂载蒙版叠加层,该模式下看不到渐变参考线。
  • 线性蒙版参考线沿法线只延伸画面高度,极宽幅照片下可能画不到边缘。
  • 应用为 ad-hoc 签名,未经 Apple 公证。

v3.0.1

Choose a tag to compare

@github-actions github-actions released this 30 Sep 11:28

v3.0.0 收尾版本:测试体系修复与实拍压力测试,渲染与应用行为无变化。
Wrap-up release for 3.0.0: test infrastructure fixes and real-photo stress testing. No rendering or behavioural changes.


English

Fixed

  • Scripts/test_studio.sh: the fixture image was mistakenly passed as the render baseline directory. It now takes an optional baseline-directory argument with path validation.
  • Tools/RenderRegression.swift: strictly separates output vs baseline directories, validates the case set, and compares .rgba / .cube outputs byte-exact.

Added

  • Tools/RealPhotoTest.swift + Scripts/test_real_photos.sh: real-photo decode / orientation / export / Vision-mask checks, original-file SHA256 integrity, and a 1000-image proxy-library soak test (120 s: 734 switch/edit/undo/redo cycles, ~172 MiB peak RSS).
  • README documents the Studio regression and real-photo stress-test usage.

Verification

  • Studio layout and performance regressions pass; 14 render cases are byte-identical to the v3.0.0 baseline.
  • Real photos: Sony HIF and same-scene JPEG; original SHA256 verified; 1000 proxy thumbnails scanned and loaded.
  • Known limits: not every camera RAW format is covered; Vision masks were verified for invocation and output validity only — visual accuracy on photos with people/subjects still pending.

中文

修复

  • Scripts/test_studio.sh:不再把 fixture 图片误传为渲染基准目录,新增可选基准目录参数与路径校验。
  • Tools/RenderRegression.swift:严格区分输出目录与基准目录,校验用例集合,.rgba / .cube 输出逐字节比较。

新增

  • Tools/RealPhotoTest.swift + Scripts/test_real_photos.sh:真实照片解码 / 方向 / 导出 / Vision 蒙版检查、原片 SHA256 完整性校验,外加 1000 张代理图库 120 秒压测(734 次切图 / 编辑 / 撤销 / 重做,峰值常驻内存约 172 MiB)。
  • README 补充 Studio 回归与实拍压测用法。

验证

  • Studio 布局、性能回归全部通过;14 组渲染用例与 v3.0.0 基准逐字节一致。
  • 实拍验证:Sony HIF、同场景 JPEG;原片 SHA256 校验通过;1000 张代理图全部扫描加载。
  • 已知限制:未穷举所有相机 RAW 格式;Vision 蒙版只验证了调用与输出有效性,待人物 / 主体照片做目视确认。

下载 RawForge-macOS-apple-silicon.zip 后用 SHA256.txt 校验,解压拖入 /Applications。未公证,首次打开需在系统设置中「仍要打开」。
Download RawForge-macOS-apple-silicon.zip, verify with SHA256.txt, then drag RawForge.app into /Applications. The app is not notarised — on first launch, right-click → Open or approve it in System Settings.

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 13:24

全新 Studio 界面:参照内部界面设计稿重做主窗口与检视器,界面语言全面升级。

新增

  • Studio 界面外壳:入口切换为 StudioMainWindow。中性面板 + 金色点缀(金色只用于选中与编辑态),面板 / 表面 / 画布三层明暗自适应,支持系统 / 浅色 / 深色外观选择并持久化。
  • 检视器五分类:明暗 / 色彩 / 细节 / 变换 / 蒙版,各带 SF Symbol 图标;分组自动归类(白平衡、基本归明暗;曲线、HSL、胶片 CLUT 归色彩等)。
  • 新增 StudioLayoutTest 布局自测与 test_studio.sh 测试脚本。

变更

  • 三栏布局:素材浏览器(250–360px)、画布(440px 起自适应)、检视器(330–440px),HSplitView 可拖动分隔线。
  • 工具栏重排:品牌、打开文件夹 / 裁剪、撤销重做、居中文件名、原图·调整对比、预设菜单、命名快照 / 复制调整 / 同步调整、导出菜单(批量导出、多重曝光合成)。
  • 检视器平铺行式分组:统一 16px 内边距、38px 标题行、细分隔线,去厚重卡片;「恢复所有默认参数」带确认。
  • 最小窗口降到 1100×700,小屏更友好。

修复

  • 切图后状态残留:切换照片自动退出裁剪、1:1、前后对比与白平衡吸管。
  • 上一张 / 下一张尊重筛选:只在星级 / 标记筛选结果内导航。
  • 批量导出防重入 + 空选集提示。
  • 撤销栈分支去重:撤销后再编辑不产生冗余步骤。
  • 数值输入尾零清理修复(不再误删有效 0);非有限值不入参。
  • 滑块行加高 28px、数值列加宽,悬停值改主题色。

验证

  • swiftc 直接编译通过(arm64),无新增编译错误;布局自测脚本通过。
  • 依据界面参考稿核对:中性面板、金色选中、五分类检视器、工具栏分组、三栏边界。

下载 RawForge-macOS-apple-silicon.zip 后用 SHA256.txt 校验,解压拖入 /Applications。未公证,首次打开需在系统设置中"仍要打开"。

v2.1.1

Choose a tag to compare

@github-actions github-actions released this 28 Sep 13:18

工作台界面的第二轮打磨:三栏边界定宽、顶部工具栏降噪、素材浏览标题分层、缩略图网格自适应。

变更

  • 三栏边界定宽:左素材栏固定约 320px、右调整栏固定约 360px,中央画布吃掉剩余空间——窗口放大时画布优先获得空间,变窄时两侧不再无限挤压缩略图和参数控件。
  • 顶部工具栏去品牌卡片:改用轻量编辑工作栏——品牌与素材文件夹、打开 / 对比 / 裁剪、文件名与原图/调整预览状态、撤销 / 重做 / 预设、快照 / 复制调整 / 同步调整、导出主操作、全像素与 1:1 开关;按钮统一小尺寸 SF Symbols、克制圆角、系统强调色。
  • 素材浏览标题层级:标题与数量分两行、独立四向留白、与缩略图区之间加细分隔线,筛选菜单居右。

修复

  • 缩略图网格改自适应:列宽 116–166px、间距 12、左右内边距 16、上下 14,图片区保持 1.35 宽高比——解决放大后贴边、小窗比例不稳定。
  • 缩略图单元结构固定:图片 → 底部星级 → 右上角选择钮 → 下方文件名;文件名不再压图、选择钮不漂移。

保留

仅重做窗口外层:RAW 解码、全部调整、蒙版画笔、前后对比、撤销重做、快照预设、复制同步、单张/批量导出、多重曝光等功能不受影响。

验证

  • swiftc 直接编译通过(arm64),无新增编译错误。
  • 依据截图反馈核对:三栏边界、工具栏降噪、缩略图比例与贴边。

下载 RawForge-macOS-apple-silicon.zip 后用 SHA256.txt 校验,解压拖入 /Applications。未公证,首次打开需在系统设置中"仍要打开"。

v2.1.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 12:11

界面重构版本:新增高级界面外壳与可伸缩三栏布局,修复缩略图重叠、标题贴边、输入重复提交与撤销空步骤,并修复胶片 LUT 的"灰片"问题。

新增

  • 高级界面外壳 PremiumUI:入口切换为 PremiumMainWindow——品牌区与工作区信息、工具分组(打开 / 对比 / 裁剪)、历史与同步分组(撤销、重做、预设、快照、复制调整、同步调整、导出)、当前照片文件名与原图/调整后状态、全像素与 1:1 预览开关、画布实时预览状态浮层(质量、尺寸、直方图)、底部状态栏(格式、星级、标记)。
  • 画布自适应底色与分隔线,三区视觉层级更清晰,随系统浅色/深色外观。

变更

  • 三栏主窗口改为 HSplitView:左素材浏览器、中画布与直方图、右检视器,可拖动分隔线调宽,窗口缩放不再挤压内容。
  • 界面风格统一:小连续圆角、克制材质、系统强调色、SF Symbols,减少厚重卡片。

修复

  • 缩略图重叠:素材浏览器最小宽度约 278px,缩略图固定 112×142、列宽 112、间距 12、内边距 16;文件名移到图片下方。
  • "素材浏览"贴边:标题区加 18×16px 内边距留白。
  • 数值输入重复提交:SliderRow 加 didCommitInput 幂等锁,同一输入周期只提交一次。
  • 撤销栈空步骤:History.push 与上一条相同则跳过,不再产生无变化的撤销。
  • 胶片 CLUT "灰片"问题:渲染管线为线性域而 LUT 为 sRGB 感知域,直接套 CIColorCube 两头错域,黑场被抬到约 18% 灰;现进 LUT 前编码、出 LUT 后解码(同 CurveCube 处理),黑场显示值由 0.181 回到 0.027。

验证

  • swiftc 直接编译通过(arm64),无新增编译错误。
  • 界面改动按截图反馈逐项核对;胶片修复经灰阶数值推演与 .cube 感知域参考逐点比对。

下载 RawForge-macOS-apple-silicon.zip 后用 SHA256.txt 校验,解压拖入 /Applications。未公证,首次打开需在系统设置中"仍要打开"。

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 13:11

RawForge 2.0.0

macOS 原生、非破坏性的 RAW 修图软件。全部在本机运行:不联网、无账号、无订阅,不依赖任何第三方库。
这是 1.1.0 之后的第一个正式版本,合并了此前未发布的 1.2 / 1.3 内容,因此版本号直接进 2.0.0。

English below ↓

新增 / Added

  • 批量同步:缩略图勾选、⌘/⇧ 多选、按八类参数同步、复制调整(默认不复制裁剪与蒙版)。
    每张目标照片在同步前自动保存恢复快照,保留星级、标记与已有快照;损坏的副档跳过并报告。
  • 白平衡灰点吸管:取样原始图像,支持旋转 / 裁剪后的坐标,过曝与极暗取样会拒绝,支持一键重置。
  • 蒙版覆盖:显示实际计算的选区,可在任意类型蒙版上添加或擦除,保留软边、撤销与保存。
  • 命名快照:创建、重命名、删除、恢复,随照片副档保存,恢复可撤销 / 重做。
  • 8/16 位 TIFF 导出,可选 sRGB / Display P3 / Adobe RGB;位深与色域控件同时用于单张与批量导出。
  • 导出水印:文字(白字 / 黑字,带柔和投影)或图片 logo,九宫格定位 + 大小 / 不透明度 / 旋转 / 边距。
  • 固定导出目录:默认落到本机配置的文件夹,可在导出面板查看与更改;配置存放在本机 UserDefaults,不进源码。

性能 / Performance

  • 预览合并为单任务并合并待处理参数,连续拖动不再堆积并发渲染;切图、切换精度时丢弃过期结果。
  • 蒙版滑块拖动中只更新预览,松手时保存一次并记录一次撤销。
  • 文件夹扫描、原图解码、前后对比、单张导出移至后台;缩略图优先用 ImageIO 内嵌预览。
  • 全部缓存(原图、曲线、胶片、HSL、范围蒙版、AI / 深度蒙版)都有容量上限与并发保护。
  • 2200px 默认预览、全像素 / 1:1 模式、64³ 曲线 LUT 与全分辨率导出管线保持不变。

修复 / Fixed

  • 颜色分级色轮整体偏色 90°:AngularGradient 的 0° 默认在 3 点钟方向,而拖拽取值用「0° 朝上、顺时针」,
    两者差 90° —— 看到的红色位置实际取到黄绿,几乎全部偏绿。已对齐并以离屏渲染取样校准。
  • 色轮中间色相最多偏 10°:色标由 13 个改为每 3° 一个(121 个),平均偏差从 2.0° 降到 0.3°。
  • 长边缩放被缩两次(线性缩放后又跑一次 Lanczos,实际输出长边是设定值的平方倍)。
  • 旋转 / 贴边水印会撑大画布导致整图错位。
  • 全像素 / 1:1 开关立即触发渲染;异步切图、导出、合成缩略图更新按照片身份核对。

兼容 / Compatibility

  • 新副档使用完整文件名(如 photo.HIF.rawforge.json),隔离同名 RAW / JPEG;旧副档保留并兼容读取。
  • 保存失败会提示,不静默覆盖损坏的编辑记录。

English

A native, non-destructive RAW photo editor for macOS. Runs entirely on your machine: no cloud, no
accounts, no subscription, no third-party dependencies. Skips 1.2 / 1.3, which were never published.

Added — Grouped batch synchronisation with ⌘/⇧ multi-select and per-target recovery snapshots;
white-balance grey-point picker; mask overlays with additive and erasing brushes; named snapshots;
8/16-bit TIFF export in sRGB / Display P3 / Adobe RGB; an export watermark; a configurable default
export folder (stored in machine-local UserDefaults, absent from the source tree).

Performance — Preview rendering coalesced into a single task with expired results dropped, mask
sliders write once on release, folder scanning / decoding / comparison / export moved off the main
thread, and every cache is bounded and concurrency-safe. The 2200px preview, 1:1 mode, 64³ curve LUT
and full-resolution export pipeline are unchanged.

Fixed — The colour grading wheel background was rotated 90° against the drag mapping, so almost
every pick looked green; gradient stops were also too sparse and shifted mid-hues by up to 10°
(verified by offscreen render + reference swatch comparison). Also: double long-edge downscaling,
rotated/edge-touching watermarks growing the canvas, 1:1 toggle latency, and cross-photo async updates.


安装 / Installation

  1. 下载 RawForge-macOS-apple-silicon.zip,校验后解压,把 RawForge.app 拖进 /Applications。
  2. 校验:
    shasum -a 256 RawForge-macOS-apple-silicon.zip
    # d4055de9c97ad5af352da99b742527ed6ec77fc24fc88ccd6f8afe7481a7af5c
  3. 首次打开会被 macOS 拦截,这是正常的(应用是 ad-hoc 本地签名,未做 Apple 公证):
    系统设置 → 隐私与安全性 → 滚到底 → 点「仍要打开」;或
    xattr -dr com.apple.quarantine /Applications/RawForge.app

要求:macOS 15.0 及以上、Apple silicon(arm64)。
输入格式:RAW(ARW / CR3 / NEF 等)、HEIF / HEIC / HIF、JPEG、PNG、TIFF、AVIF。

本项目故意不启用 App Sandbox:免费 ad-hoc 签名下 entitlements 不会正确 bind,一旦 sandbox 生效,
读取照片文件夹与写入 .rawforge.json 旁挂都会失效。

验证 / Verification

用本机 Sony HIF、实拍 JPEG 与纸面照片副本测试,原文件未被修改;覆盖白平衡中性校正、蒙版擦除 / 重绘、
快照恢复、批量同步保护、旧副档迁移、三种色彩空间的 8/16 位 TIFF、导出界面实测 4128×6192 的 16 位 TIFF。
未对所有相机 RAW 格式、所有 Vision 模型场景或超大型图库做穷举测试。

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 16:53

RawForge 1.1.0

新增

  • 多重曝光对齐:Vision 配准的帧对齐 + 质量门(重叠区 NCC < 0.7 的帧自动剔除),对齐方式可选平移或透视(homography)
  • 手持降噪:逐像素平均,偏离参考帧超过 kσ 的像素按参考值取,压噪同时抑制移动物体鬼影
  • 合成输入扩展:按 ⌘ 多选照片加入合成,可添加文件夹外的文件
  • 新蒙版:主体抠图(前景抠图)、深度涂绘(为焦外散景提供深度来源)
  • 焦外散景:深度来源可选人像 disparity 辅助数据或深度涂绘蒙版
  • 导出面板:格式(JPEG / PNG / TIFF / HEIC)、长边尺寸、质量;仅导出已标记照片
  • 透明背景抠图导出
  • 预设:保存与套用
  • 自适应主题:跟随系统浅色 / 深色
  • 快捷键补全:⌘O 打开文件夹 · ⌘E 导出 · ⌘R 裁剪 · ⌘B 前后对比 · ⇧⌘M 多重曝光 · ⌘Z / ⇧⌘Z

Added (English)

  • Multi-exposure frame alignment via Vision registration with a quality gate (translation or homography)
  • Hand-held denoise mode with kσ-based outlier rejection
  • Multi-select compositing input; foreground cut-out and depth-painting masks; bokeh
  • Export panel (JPEG / PNG / TIFF / HEIC, long edge, quality) and transparent cut-out export
  • Presets; adaptive light/dark theme; complete keyboard shortcuts

安装 / Installation

下载 RawForge-macOS-apple-silicon.zip,用 SHA256.txt 校验后解压,把 RawForge.app 放进 /Applications。

首次打开会被 macOS 拦截,这是正常的(未公证):系统设置 → 隐私与安全性 → 仍要打开;或
xattr -dr com.apple.quarantine /Applications/RawForge.app

本应用不启用 App Sandbox(ad-hoc 签名下 entitlements 无法正确 bind,启用会导致读照片文件夹与写 .rawforge.json 失效)。

要求 / Requirements:macOS 15.0+,Apple silicon。

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 12:49
RawForge 1.0.0