Files
AnyImage/openspec/changes/archive/2026-09-17-repair-image-edit-pipelines/proposal.md
nan 198fcbf55b
Some checks failed
Test / test (push) Has been cancelled
Initial public release
2026-09-19 21:31:36 +08:00

34 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Why
本轮审查发现,图片读取会重载并覆盖 Blender 像素缓存,Frame 会误判有效透视交叠,Brush 的路径简化、覆盖合并和预览更新存在精度与性能问题。需要修复这些可复现行为,并清理同一调用链中的旧入口和重复计算。
## What Changes
- 让业务像素读取保持源 Image 的像素、Alpha 模式、脏状态与共享引用不变,保留已确认的结果 PREMUL 默认值。
- Frame 在齐次坐标中裁剪有效投射,再判断连续几何交叠。
- Brush 使用具有整段误差约束的屏幕路径;完整图元先合并覆盖,再统一抗锯齿。
- Brush 增量更新屏幕预览,复用填充与外轮廓的单一缓存。
- Mask 保留单步 Undo,移除没有 execute 实现的 REGISTER 与重做参数面板。
- Frame 直接输出独立合成的 RGB/Alpha,清理已被覆盖的预乘、反预乘与扩色处理。
- 将 Frame、Rectify 的矩形裁剪收敛到公共半平面裁剪;删除只供测试调用的转发函数和无消费者状态。
## Capabilities
### New Capabilities
- `image-pixel-read-integrity`: 业务像素读取的无副作用约束与脏缓存保留。
- `frame-projection-clipping`: Frame 连续有效交叠的齐次裁剪与合成输出约束。
- `brush-stroke-processing`: Brush 路径误差、覆盖合并、增量预览与 Mask 提交行为。
### Modified Capabilities
无。当前 `openspec/specs/` 为空;相关功能仍记录在未归档变更中。本提案补充其修复契约,实施以当前工作区为基线,与 `enable-image-alpha-blending-and-premul`、`support-frame-view-plane-intersections`、`add-live-mask-preview-and-polyline`、`preserve-frame-bottom-layer-rgb` 共同验收。
## Impact
- `common/image.py`:像素读取及结果数据保留。
- `common/selection.py`、`common/viewport.py`:裁剪、路径、覆盖和预览缓存。
- `operators/image_edit_tool/frame.py`、`mask.py`、`rectify.py`:交叠、提交与共享能力调用。
- Cutout Lasso 作为公共手势消费者参加回归验证;轴向与节点资产沿用当前实现。
- 增补行为回归与结构性性能测试,运行全量 pytest;实施仅修改代码和测试,不增加依赖、不构建文档或发布产物。