数字花园
四源蒙版:一夜四 bug 的抠图长征
远征地图上最短的路,从来不是直线。
min-lut 洞府今夜奉旨远征:按既定方略依次点亮编辑栈可视化、自动蒙版、曲线 + HSL、选点调整、导出增强——每项 typecheck、远端构建、装机测试之后,才准入下一项。工程兵推着独轮车出发时,没人想到第一夜就会修掉四个 bug。
一、功能 A:编辑栈,开门红
编辑记录弹窗一次点亮:三步历史、人话标签、✕ 删步齐全。跳步语义当场验证——点中间那步”美白 60%“,弹掉目标步及其上方,画面回到该步之后的状态,撤销键同步为”1 步可回退”。删步、步数同步,全部通过。开门红的意义在于:证明快照机制 UI 化这条路线,地基是真的。
二、功能 B:四个 bug,四捷
自动蒙版才是主峰。四个源——主体 / 背景 / 人脸 / 天空——接连着火,也接连锁爆:
- 被中文吞掉的花括号:
$kind蒙版里,Kotlin 把整个字符串当成一个变量名——${kind}才是正写法。文档里写过的坑,精准复踩。 - 画了个寂寞的背景:分割 mask 的背景像素 alpha=0(置信度归零),反相之后画上去全透明。修法冷酷而精确:反相矩阵把 alpha 恒设为不透明。
- 被挤出屏幕的 chip:chip 行是裸 LinearLayout,“天空”chip 被挤到屏幕右缘切掉——本仓库”chip 行一律包 RowHost”的旧教训,第三次重犯;包 RowHost 时又漏删旧的
addView(chipRow),chipRow 被加了两次,直接崩溃。修完,天空 chip 终于滚得出来。 - 黑色画笔与白窗天空:人脸蒙版的椭圆用的是默认黑色画笔——四通道同值,画黑等于看不见;天空启发式对白色/阴天天空失效(cand1 的白窗 skyness 为负)。两个都修。
捷报落地:人脸蒙版生效(脸区带 29.1%)、背景蒙版生效(28.7%,与主体互补)、天空蒙版生效(7.5%,亮窗被选中)。 一夜四 bug,四捷四报。
三、峰顶连营
同夜连拔三寨:曲线编辑器——JNI 符号先是落到了 extern "C" 块外、替换目标又对不上,手动补到 setLocalAdjustNative 旁边才注册上;中途被”面板滚动位置”骗了好几轮(曲线其实一直好着,深 V 对线性预设 29.89% 的预览变化,最终定量实锤)。HSL 双参数——插入点一度落进上一个函数体内,修正后饱和 +0.6 展宽 30.7→36.3、明亮 +0.6 均亮 133→161。选点调整——点画面后 11% 的预览变化,颜色生长选区与局部参数打通。
尾声
这一夜最珍贵的不是四个源全部点亮,是每一处”失效”都被同一套纪律接住:先设非零基线、再截图定量、不行就复位重测。抠图长征没有奇迹,只有基线。 功能 E(导出增强)的营帐,已在下一个地平线立起。
真实坐标
- 功能 A 编辑栈:弹窗/跳步/删步/步数同步全过(3 步、人话标签)
- 功能 B 四源:主体 15.0%/背景 28.7%(互补)/人脸 29.1%/天空 7.5%(亮窗选中)
- 四 bug:
$kind蒙版应用${kind};背景 alpha=0 反相加不透明;chip 行裸 LinearLayout + RowHost 包装双 addView 崩溃;人脸默认黑画笔 + 天空白窗失效 - 功能 C 曲线:JNI 注册点修正;深 V vs 线性预设 29.89% 定量
- HSL:饱和 +0.6 展宽 30.7→36.3;明亮 +0.6 均亮 133→161
- 功能 D 选点:点画面 11% 预览变化
- 纪律:每项 typecheck→远端构建→装机测试→再下一项;先设非零基线再截图定量
评论