# 混合模式改了什么：正片叠底为什么去白留黑，滤色为什么去黑留白

从“底色乘上层色”这条公式讲起，理解正片叠底和滤色的中性色、不透明度与混合模式的分工，以及为什么纯白区域怎么调都不变

> 混合模式 · 图层 · Photoshop 基础操作 · 约 6 分钟 · 10 月 13 日

## 本篇要点

1. 混合模式是在“上层盖住下层”这一步之前插入的逐像素公式，输入是底色（下方可见图层的合成结果）和上层色（当前图层的像素），按 RGB 通道分别计算，像素之间互不影响。
2. 正片叠底的结果是底色乘上层色，只会变暗或不变；纯白是它的中性色，所以白底素材叠上去白底自动消失，纯黑则一律压成黑。
3. 滤色是先把两个数反相、相乘、再反相，只会变亮或不变；纯黑是它的中性色，所以黑底素材（火焰、光斑、星空）叠上去黑底自动消失。
4. 每种混合模式都有一块“什么都不做”的颜色：正片叠底是白，滤色是黑，叠加与柔光是 50% 灰；Photoshop 的“用中性色填充”选项就是按这个规则工作的。
5. 不透明度是在底色与全量混合结果之间做线性插值，只决定效果用了多少，不改变变化的方向：底色 200、上层 128 灰时，正片叠底在 100%、50%、25%、10% 下分别得到约 100、150、175、190。
6. 因为纯白像素的混合结果就等于底色，插值两端相同，所以正片叠底那层上的纯白区域无论不透明度怎么调都不变——白色不挡事是混合模式的性质，不是透明度的功劳。
7. 这些公式算的是文档存储的数值而非感知亮度，所以两个中灰相乘得到 64，看上去暗得不成比例；同类判断也要注意底色始终是下方所有可见图层的合成结果。

---

前面讲图层时留了一个默认设定没展开：正常（Normal）模式下，上面一层只要不透明，下面那层就被完全盖住。这一篇要讲的混合模式，改的正是这一步。

## 参与计算的其实只有两个像素

图层面板左上角那个写着“正常”的下拉框里有二十几个选项。不管选哪一个，Photoshop 做的事都一样：**把上层某个像素的值和下层同一位置的像素值，按这个模式的公式算一遍，算出来的就是最终看到的颜色**[1]。然后对每个像素重复一遍，像素之间互不影响。

两个输入有固定名字：

- **底色（base）**：这个图层底下所有可见图层合成后的结果，也就是“原来是什么样”。
- **上层色（blend）**：当前这个图层对应位置的像素。

```mermaid
flowchart LR
  A["底色：下方所有可见图层的合成结果"] --> C["按混合模式的公式计算"]
  B["上层色：当前图层的像素"] --> C
  C --> D["混合结果"]
  D --> E["按不透明度与底色插值"]
  A --> E
  E --> F["最终显示的颜色"]
```

计算按红、绿、蓝三个通道分开做，算法完全一样。所以混合模式改的不只是明暗，也会改颜色。

## 正片叠底：把两个数相乘

把亮度写成 0 到 1 之间的小数（纯黑是 0，纯白是 1），正片叠底（Multiply）的公式短得只有三个符号：

$$\text{结果}=\text{底色}\times\text{上层色}$$

8 位图像的量程是 0 到 255，整数运算就是同一个式子再除以 255[2]。代入数字：底色是 200 的浅灰，上层是 128 的中灰，

$$200\times128\div255=25600\div255\approx100$$

200 变成约 100，明显变暗。

为什么只会变暗？两个乘数都在 0 和 1 之间，乘积不可能比任何一个乘数更大，结果只会“更小或相等”[3]。而“相等”正是它最有用的地方。

## 白色的 1 和黑色的 0：去白留黑是怎么来的

- 上层是纯白（1）：结果 $=\text{底色}\times1=\text{底色}$。**下层原样显示，上面这层等于不存在。**
- 上层是纯黑（0）：结果 $=\text{底色}\times0=0$。**不管下面是什么，这里一律变黑。**

这就是“去白留黑”的来历：上层白的地方不起作用，黑的地方直接涂黑，中间的灰按比例把下层压暗。Adobe 的说明用的也是这两句话——乘黑得黑，乘白不变[4]。

白纸上签的名、拍的印章、网上找的白底图标，拖进照片改成正片叠底，白底就自己消失，只留下黑色笔画。它并不是“把白色抠掉”，而是白色在乘法里不产生任何影响。只是真正等于 255 的白并不多，扫描件和 JPEG 压缩会在白底上留下 250 左右的杂点，叠上去就是一层淡淡的灰影。

## 滤色：把同一套乘法作用在“反过来的图”上

滤色（Screen）一句话就能记住：**先把两个数都反相，相乘，再把乘积反相。**

$$\text{结果}=1-(1-\text{底色})\times(1-\text{上层色})$$

换成 0 到 255 的写法是 $255-\dfrac{(255-\text{底色})\times(255-\text{上层色})}{255}$[2]。还是代入两个 128：$255-127\times127\div255\approx192$。同样一对中灰，正片叠底算出 64，滤色算出 192，正好落在 255 的另一侧。

两个极端也跟着翻过来：上层纯黑（0）反相后是 1，乘完还是底色，**下层原样显示**；上层纯白（1）反相后是 0，乘出来是 0，再反相回来是纯白，**这里变成白**[4]。

所以滤色是“去黑留白”。黑底上的火焰、光斑、星空，拖进来设成滤色，黑色背景直接消失，只剩发光的部分。

## 中性色：每种模式都有一块“什么都不做”的颜色

对照上面两条会发现一个结构：**每种混合模式都有一个不改变画面的颜色。** 正片叠底的中性色是白，滤色的是黑，后面要讲的叠加（Overlay）和柔光（Soft Light）是 50% 灰。

这不是巧合，而是模式定义的一部分。Photoshop 新建图层时有个“用（模式）中性色填充”的选项，就是给这层填一块按当前模式算下来不产生任何变化的颜色：看着是空的，但有实实在在的像素，可以接受滤镜和其他操作[5]。

## 不透明度管“用了多少”，不管“往哪变”

混合模式决定方向和形状——往暗里走（正片叠底）、往亮里走（滤色），还是别的走向。不透明度决定用量：把混合结果和原来的底色按比例掺一遍。通行的合成规则写成一条式子就是这样[6]：

$$\text{最终结果}=\text{底色}\times(1-\alpha)+\text{混合结果}\times\alpha$$

$\alpha$ 是不透明度，100% 写作 1。还拿底色 200、上层 128 灰这一对像素举例，正片叠底的全量结果约是 100：

| 不透明度 | 计算 | 结果 |
|---|---|---|
| 100% | $200\times0+100\times1$ | 100 |
| 50% | $200\times0.5+100\times0.5$ | 150 |
| 25% | $200\times0.75+100\times0.25$ | 175 |
| 10% | $200\times0.9+100\times0.1$ | 190 |

不透明度只是在把结果从 100 往 200 那边拉，方向始终没变，变暗一直在发生，只是越来越轻。**它是一根两头固定的插值杆子，一端是“全量混合”，一端是“原样不动”。**

这顺便解释了一个立刻能验证的现象：如果上层那个像素是纯白，正片叠底算出的混合结果等于底色，插值两端是同一个数，于是**不管把不透明度拖到多少，画面一点都不变**。白色不挡事是混合模式的性质，跟透明度没关系。反过来，想把正片叠底的效果“少用一点”该动不透明度，但没法靠调不透明度让它只去白、不压暗别的颜色——那是换模式才能解决的事。

## 边界：公式算的是存下来的数值

这些乘法作用在文档实际存储的数值上，不是人眼感知的亮度。8 位 sRGB 里中灰是 128，看着像“一半亮”，但它离感知上的一半还差很远，所以两个中灰相乘得到 64，肉眼觉得暗得不成比例。这不是软件算错，是这个数值空间本来就不线性。

## 上手的判断顺序

1. 素材是白底还是黑底？白底用正片叠底，黑底用滤色。这一步选错，后面怎么调都不对。
2. 幅度太重就降不透明度；不存在“只少去一点白”这种操作。
3. 只要效果落在局部，就给这层加蒙版，把不要的地方涂黑——用法和前几篇完全一样。

自己验算两道：

<details><summary>问题一：底色仍是 200，上层放一块纯白，混合模式正片叠底，不透明度 30%。这块地方最后是多少？</summary>

还是 200。纯白是正片叠底的中性色，混合结果就是 200，插值两端是同一个数，改任何不透明度都不变。

</details>

<details><summary>问题二：底色 200、上层 128 灰，正片叠底、不透明度 10%，结果大约多少？</summary>

约 190。虽然只差 10 个亮度级别，但 8 位图像里 10 级已经看得出来；只要不透明度不是 0，变化就一直在。

</details>

回到开头：混合模式只做了一件事——在“上层盖住下层”之前插进一个逐像素的公式。正片叠底把两边相乘，白色是 1，所以白的不起作用；滤色把两边反相再乘，黑色是 0，反相之后变成 1，所以黑的不起作用。至于这个公式的效果要用几成，交给不透明度。以后看到调整图层、填充图层上的混合模式下拉框，可以套用同一套理解——只不过那里的“上层色”换成了调整之后的结果。

## 术语表

- 混合模式：规定上层像素和下层像素用什么公式算出最终颜色，逐个像素独立执行，不牵动邻居。
- 底色与上层色（base / blend）：公式的两个输入，前者是下方所有可见图层合成后的结果，后者是当前图层对应位置的像素。
- 正片叠底（Multiply）：结果等于底色乘上层色，只能变暗或不变，纯白是它的中性色。
- 滤色（Screen）：把两边反相后相乘再反相，只能变亮或不变，纯黑是它的中性色。
- 中性色：某个混合模式下“不改变画面”的颜色，白配正片叠底、黑配滤色、50% 灰配叠加与柔光。
- 不透明度（Opacity）：把混合结果与底色按比例插值，只决定效果用了多少，不改变变化方向。

## 来源

1. [Adobe：How to blend colors using Photoshop tools — 说明混合模式是决定上层（blend layer）与背景层（base layer）像素如何混合的数学公式](https://www.adobe.com/products/photoshop/blend-colors.html)
2. [psd-tools image-blender: Blend modes and formulas — 列出正片叠底 a×b/255 与滤色 255-(255-a)(255-b)/255 的公式](https://github.com/psd-tools/image-blender/blob/master/wiki/Blend-modes-and-formulas.rest)
3. [Wikipedia: Blend modes — 正片叠底与滤色的定义，以及结果只暗不亮、只亮不暗的性质](https://en.wikipedia.org/wiki/Blend_modes)
4. [Adobe Photoshop 官方文档：Blending mode descriptions — 正片叠底乘黑得黑、乘白不变；滤色与黑混合不变、与白混合得白](https://helpx.adobe.com/photoshop/desktop/repair-retouch/adjust-light-tone/blending-mode-descriptions.html)
5. [Adobe Photoshop 官方文档：Layer opacity and blending modes — 用（模式）中性色填充图层的用途](https://helpx.adobe.com/photoshop/using/layer-opacity-blending.html)
6. [PDF Reference 1.6 Addendum: Blend Modes — 给出混合函数 B(Cb, Cs) 与带透明度的合成公式](https://printtechnologies.org/standards/files/pdf-reference-1.6-addendum-blend-modes.pdf)

---

原文：https://pangzhengboyin.com/articles/photoshop-blend-modes-multiply-screen-40bc4016

> **庞征博引** · 想学的，慢慢都会
>
> 庞征博引是把想学的东西写成连载的 AI 学习工具。说出想学什么，它会先了解你的基础，再把主题写成一篇篇 5–10 分钟能读完的文章；边读边问，接下来学什么跟着你走。这篇就是这样写出来的。
>
> 开始你自己的连载 → https://pangzhengboyin.com
