正片叠底到底乘的是什么?

3 个讲解板块 · 关联 1 款站内工具 · 内容最后核对 2026-10-12

乘的不是 0 到 255 的整数,而是先归一到 0 到 1 的通道值。中灰乘中灰得到约 64 级,公式用的是屏幕编码值,不是线性光。

直接答案

计算前先把 0 到 255 的通道值除以 255 归一化,算完再乘回来。所以正片叠底不是整数相乘,而是两个小数相乘再乘 255。

两个中灰相乘的结果是原来的一半左右,而不是不变:128 除以 255 约等于 0.5,两个 0.5 相乘得到 0.25,乘回 255 约等于 64。通道值只会变小或不变,所以正片叠底只会让画面更暗。

单位元是理解这两种模式最快的路:白色(值为 1)是正片叠底的单位元,任何颜色与白相乘都不变,这就是白底素材能直接叠加的原因;黑色(值为 0)是滤色的单位元,黑底素材叠加后原样保留。

修图和前端渲染里都会用到混合模式,名字很形象,但一遇到「为什么只乘了一半」就容易说不清。

这一篇把公式、单位元与色彩空间三件事排在一起讲,并给出可手算的对照值。

1三种常用模式的公式

公式都按通道独立计算,下面用背景值与来源值两个记号表示。

模式公式结果特征
正片叠底两值相乘只会更暗,白色不变
滤色两值相加再减去乘积只会更亮,黑色不变
差分两值之差的绝对值相同颜色得到纯黑
叠加按背景值在正片叠底与滤色之间切换增强对比,保留中间调

正片叠底与滤色互为镜像:把两个模式里的黑白角色对调,就是另一个模式的行为。

2可手算的对照值

把几个常见通道值代进去,结果与直觉差距最大的正是中间调。

背景值来源值正片叠底结果
255(白)任意值等于来源值,白色不起作用
0(黑)任意值恒为 0,黑压一切
128(中灰)128(中灰)约 64,比两边都暗
128(中灰)255(白)约 128,保持不变

中灰乘中灰不是中灰而是更暗一档,这就是双层灰色素材叠加后发闷的原因。

3公式作用在哪种数值上

同一个公式,代入哪种通道值会得到不同结果,这一点最容易被忽略。

屏幕编码值
图形软件与网页渲染的默认口径,直接拿屏幕上那组数值参与运算
线性光值
先还原成物理光强度再运算,混合边界更自然,但结果与屏幕值不同
不透明度参与合成
混合结果还要和图层不透明度一起按合成公式处理,不是简单取代
四类分不开的模式
色相、饱和度、颜色、明度这四种在色相饱和度明度空间里重组,无法拆成单通道公式

同一组颜色在两种口径下算出的结果肉眼可辨,跨软件比对前先确认口径一致。

相关疑问

为什么白色叠加后完全没有变化?

因为白色归一化后是 1,任何值乘 1 都不变,它是正片叠底的单位元。

正片叠底能提亮吗?

不能。归一化后两个因子都不超过 1,乘积只会更小或相等,所以结果只会更暗。

为什么软件里叠出来和我手算的不一样?

先确认是不是作用在线性光值上,再确认不透明度与分组是否为穿透模式,两者都会改变结果。

滤色和正片叠底能互相转换吗?

可以。把参与运算的颜色各自取反,用一种模式算完再取反,就等价于另一种模式。

内容标识:本页内容由人工智能辅助生成,并经人工核对与编辑。详见 人工智能生成内容标识说明。
内容说明:本页针对具体使用问题作答,方法步骤与数值由本站自行整理与复算,事实性内容以对应官方规范与文档为准。内容最后核对日期:2026-10-12。若发现错误,欢迎通过页脚反馈入口告知。