<质感工坊

抖动转换器

[ 5 KERNELS // CANVAS 2D ]
Bitgrain applied to the sample photo

抖动(Dithering)用空间细节换取色彩深度,伪造出有限调色板本来显示不出的层次。你的眼睛会把散布的黑白点重新平均成灰。本工具同时提供这项技术的两大家族,因为它们的失效方式完全不同。

Bitgrain 是有序抖动。它把每个色块与一张 8×8 Bayer 矩阵(固定的 64 级阈值点阵)比较,并按 detail 设置量化到每通道 3、4 或 5 级。有序抖动是确定性的,且可以无缝平铺,所以会产生那种规则的交叉网纹——早期游戏和报纸印刷里最常见的质感。

四个 Grain 滤镜走的是误差扩散,而且是真正的 1-bit:一种墨色配一种纸色,完全没有中间调。每个单元阈值化之后,剩下的误差被推给尚未访问的邻居,于是图像在扫描推进的过程中自我修正。四种配色各用一套不同的扩散核,且扫描按蛇形(逐行交替方向)进行,避免误差持续朝一侧漂移。

滤镜方法扩散核输出
Bitgrain有序抖动8×8 Bayer每通道 3–5 级
Cobalt Grain误差扩散Floyd–Steinberg1-bit,蓝墨
Denim Grain误差扩散Atkinson1-bit,靛蓝墨
Harbor Grain误差扩散3 抽头1-bit,青墨
Meadow Grain误差扩散双行 7 抽头1-bit,绿墨

Atkinson 会刻意丢弃一部分误差,因此对比更高、白色更干净——这正是老款 Macintosh 屏幕的观感。Floyd–Steinberg 全量保留误差,中间调过渡更完整。

全部运算通过 Canvas 2D 在你自己的设备上完成。零上传、免注册、导出 PNG(长边最高 1400px)。

> 效果示例

同一张插画,用本页滤镜的默认参数处理——由上方同一套引擎真实渲染,不是效果示意图。

两位戴斗笠的旅人穿过被风吹伏的草坡的插画——未经任何滤镜处理的原图
原图未经处理
两位戴斗笠的旅人穿过被风吹伏的草坡的插画,应用 Bitgrain 滤镜后——8×8 Bayer 有序抖动的交叉网纹
Bitgrain8×8 Bayer 有序抖动的交叉网纹
两位戴斗笠的旅人穿过被风吹伏的草坡的插画,应用 Cobalt Grain 滤镜后——1-bit 蓝墨 Floyd–Steinberg 颗粒
Cobalt Grain1-bit 蓝墨 Floyd–Steinberg 颗粒
两位戴斗笠的旅人穿过被风吹伏的草坡的插画,应用 Denim Grain 滤镜后——1-bit 靛蓝 Atkinson 颗粒
Denim Grain1-bit 靛蓝 Atkinson 颗粒
两位斗笠旅人走在高高绿草中的近景裁切——未经任何滤镜处理的原图
原图未经处理
两位斗笠旅人走在高高绿草中的近景裁切,应用 Bitgrain 滤镜后——8×8 Bayer 有序抖动的交叉网纹
Bitgrain8×8 Bayer 有序抖动的交叉网纹
两位斗笠旅人走在高高绿草中的近景裁切,应用 Cobalt Grain 滤镜后——1-bit 蓝墨 Floyd–Steinberg 颗粒
Cobalt Grain1-bit 蓝墨 Floyd–Steinberg 颗粒
两位斗笠旅人走在高高绿草中的近景裁切,应用 Denim Grain 滤镜后——1-bit 靛蓝 Atkinson 颗粒
Denim Grain1-bit 靛蓝 Atkinson 颗粒

> 常见问题

什么是图像抖动(Dither)?
抖动通过把可用颜色按图案散布,来近似有限调色板无法显示的颜色。在正常观看距离下,眼睛会把图案重新平均成目标色调——本质是用空间细节换色彩深度。
有序抖动和误差扩散有什么区别?
有序抖动把每个像素与固定阈值矩阵比较,速度快、结果确定、纹理规则可见。误差扩散把每个像素的舍入误差推给邻居,颗粒更有机、更少重复,但结果依赖扫描顺序。
哪个滤镜是真正的 1-bit 黑白?
四个 Grain 滤镜。每个都只用一种墨色加一种纸色,没有任何中间调。Bitgrain 则是量化到每通道 3 到 5 级,因此仍保留部分颜色。
为什么 Atkinson 看起来比 Floyd–Steinberg 对比更强?
Atkinson 刻意丢弃累积误差中的一部分,而不是全部分配出去。高光更干净地过曝、阴影更深,这正是经典 Macintosh 显示器的观感。
这个抖动转换器免费且私密吗?
是。全部通过 Canvas 2D 在你的浏览器内运行,图片不会被上传,导出的 PNG 也没有水印。

图片在你的浏览器内处理,不会上传。站点保留匿名使用统计(页面访问、所选滤镜、文件大小),不含任何像素数据。