<質感工坊

抖動轉換器

[ 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 也沒有浮水印。

圖片在你的瀏覽器內處理,不會上傳。站點保留匿名使用統計(頁面造訪、所選濾鏡、檔案大小),不含任何像素資料。