墨水屏只有 16 级灰,但照片里有成千上万种亮度。中间那些级差怎么办?答案是抖动(dithering):用黑白像素的疏密排列,让眼睛在正常距离上把它们混合成灰色。这个办法比电子纸早了几十年,最早来自报纸印刷的网点。
不同算法的差别,本质是“把量化误差往哪里摊”。摊得聪明,过渡自然;摊得粗暴,颗粒明显但风格强烈。
Floyd–Steinberg:最常用的误差扩散
它逐像素处理:当前像素只能取黑或白,取整产生的误差按固定比例分给右、左下、下、右下四个邻居,权重分别是 7/16、3/16、5/16、1/16。因为误差一路向后传,整体亮度能得到较好保留。
优点是过渡最自然、细节保留最好,适合照片。缺点是会形成细密的蛇形纹理,放大看像蠕虫;处理文字或细线条时,边缘会被噪点啃出毛边。如果你只有一种算法可用,选它通常不会错。
Atkinson:更干净的高光,更复古的颗粒
早期 Macintosh 用的算法。它只把误差分给六个邻居,每个邻居 1/8,总共只扩散了 3/4 的误差——剩下的四分之一直接丢掉。结果是高光区域特别干净,暗部对比更强,整体颗粒比 Floyd–Steinberg 粗,有很明显的印刷质感。
适合高反差的艺术图、海报、黑白插画。用在人像上会让皮肤显得颗粒感重,但在墨水屏上这反而像旧书插图,不算缺点。
Bayer:规则的网点,最像印刷
有序抖动不做误差扩散,而是预先定义一张阈值矩阵(常用 4×4 或 8×8),每个像素拿自己的亮度跟对应位置的阈值比较,决定黑白。因为阈值按固定图案排列,出来的纹理非常规整,像布纹或网点。
优点是速度快、纹理均匀、不会出现蛇形伪影,特别适合插画、几何图形、大面积渐变。8×8 比 4×4 的灰阶更细腻,但网点也更明显。缺点是斜线和大面积平涂上容易出现规则图案,某些图上会看出“格子”。
怎么选:一张对照表
- 人像、风景照片 → Floyd–Steinberg,强度中低;
- 高反差海报、版画 → Atkinson,强度中高;
- 插画、几何、渐变背景 → Bayer 8×8;
- 纯文字、线稿 → 不加抖动,直接二值化,否则边缘会脏。
强度调过头会怎样
抖动强度越高,模拟的灰阶越多,但噪点也越密。在 300 ppi 的设备上,中等强度看起来是细腻的颗粒;在 167 ppi 的老设备上,同样的参数会变成明显的沙点。所以参数没有通用最优值,必须结合设备看。
两个常见误区:一是给文字加抖动,结果笔画边缘全是毛刺;二是为了“更清晰”把强度拉到最大,反而让画面更脏。清晰感来自对比度和主体结构,不来自噪点数量。
在生成器里怎么试
打开壁纸生成器,在“抖动”页可以实时切换三种算法并拖动强度。建议一次只改一个变量:先定算法,再调强度,最后回到“影调”页微调对比度。改完记得按真实机型预览,不要只看画布缩略图。