色彩對比分析演算法

色彩對比

在開發網站經驗中,我們有時候希望能讓使用者能夠擁有更多的控制權,如讓使用者自行修改網站的背景顏色或字體顏色,若您遇到的使用者是熟悉網站顏色搭配的則通常不會有太大的問題,但當你遇到不太會配色的使用者時,配出來的字體顏色與背景顏色太接近,造成網站的可讀性降低,不只流失了拜訪者,也讓你的網站整體美感變得不好。

若你的會員有上千個,我們總不可能逐個頁面去檢查配色吧? 這個時候就需要一個”色彩對比分析演算法” 來解決這個問題。

對顏色熟悉的朋友都知道在RGB顏色模式中, R代表RED, G代表GREEN, B代表BLUE,若以rgb(x,y,z) 作為顏色產生的含數來看,x,y,z 的值必須介於0-255之間。紅色代表rgb(255,0,0), 綠色代表(0,255,0),…以此類推。

假設使用者輸入了兩種顏色,你想要知道這兩個顏色的配色是否恰當,根據W3C的建議,我們可以使用以下演算法

我們主要透過兩個指標來判斷,分別是:亮度差異色彩差異

W3C 所建議的亮度差異應大於 125, 而色彩差異則應大於 500(也有人建議400)。若兩色比對的結果小於這些指標則表示不符合。

色彩亮度公式
色彩亮度係以下列公式計算所得:
((紅色值 X 299) + (綠色值 X 587) + (藍色值 X 114)) / 1000
背景色亮度與前景色亮度的差異應大於 125.
註: 這個演算法係由轉換 RGB 值為 YIQ 值的公式中所取得. 這個亮度值得出了色彩的知覺亮度.

色彩差異公式
色彩差異係以下列公式計算所得:
((紅色值 1, 紅色值 2) 的最大值 - (紅色值 1, 紅色值 2) 的最小值 ) + ((綠色值 1, 綠色值 2) 的最大值 - (綠色值 1, 綠色值 2) 的最小值 ) + ((藍色值 1, 藍色值 2) 的最大值 - (藍色值 1, 藍色值 2) 的最小值 )
背景色與前景色的色彩差異應大於 500.

 

參考資料:

1. 親和資訊解決方案 http://ais.z6i.org/web/resources/contrast_analyser/