屏幕不够,算法来凑(一):Ditherpunk 抖动算法原理与 JS 实时演示
背景
在嵌入式开发领域,我们经常会遇到色彩位数极低的显示设备:
- 经典的 SSD1306 (0.96寸 OLED),仅支持黑白两色。
- 电子墨水屏 (E-Ink),通常只有黑白,且刷新率极低。
如果直接将 24 位真彩图片进行量化处理,其结果往往如同烧焦的木炭,细节丢失殆尽。但若引入 抖动算法(Dithering),这些 1-Bit 屏幕便能模拟出细腻的灰度感。
此前我曾尝试用 Rust 实现过一个版本,但作为博客演示,使用 JavaScript 与 Canvas 在浏览器中直接进行仿真最为直观。本文将介绍几种主流抖动算法的原理及其 JS 实现。


