跳至主要内容

遞色

· 閱讀時間約 3 分鐘

眼尖的 Wiwi.Blog 讀者可能早就發現了:這個部落格裡的許多圖片都有種「復古質感」,放大一看會發現密密麻麻的點點,像是從 Windows 95 時代穿越過來的。

沒錯,我當然是故意的

這個技術叫做「Dither」,中文常翻成「遞色」。簡單來說,Dither 就是把極少數的顏色,透過巧妙的排列組合,來讓你誤以為看到了更多顏色。就像是只用三種顏色的蠟筆,硬是畫出彩虹一樣的概念。

以下這張檸檬卷圖片是「24 位元全彩」的,也就是說它裡面可以包含超過一千六百萬種不同的顏色[^1]:

(內含至多 224 = 16,777,216 種顏色 的檸檬卷)

但如果把「總顏色數」限縮到只有 32 色呢?你可能猜想,那樣一定會變很醜,但完全不會:

(只有 32 色的檸檬卷)

經過 Dither 處理後,只有 32 色的版本效果幾乎跟原圖一模一樣。放大來看,你會發現這些「顏色」,其實只由固定的 32 色小點點交織而成,是你的大腦自動幫你把它們混色了。

如果顏色數更少呢?試試看只用 8 種顏色,看起來也還是不錯吧!以下這檔案只有不到 7 KB:

(8 色的檸檬卷依然看起來很美味)

沒騙你,上圖真的只有這八個顏色喔:

這種「事先挑選特定顏色」的方法,叫做「Indexed Color」(索引色彩)。圖片檔案不需要儲存每個畫素的完整顏色資訊,而是先建立一個固定的調色盤,接著就只要記錄「我要用調色盤上的第幾號顏色」就好。

Dither 的圖案可以規律也可以不規律。不規律的 Dither 看起來會像是老電視的雜訊:

(放大一點看!)

規律的 Dither 會形成明顯的網格圖案:

(放大一點看!我喜歡這個版本!)

我很喜歡規律的 Dither,因為它可以讓原本解析度很低的圖,反而看起來更銳利、有更多細節,同時還讓圖片檔案更小、載入更快。額外的優點是超級「耐放大」,因為即使放大十倍,這些 Dither 小點點仍然是完美的小點點,不會變成模糊不清的色塊。

在這個什麼都要「4K Pro Max Ultra HDR」的年代,堅持用 8 色調色盤才是真新潮!

一千六百萬色?那是普通人才在用的。