2023年政策修订增补工作正在进行中,欢迎参与!
模組:ColorManipulation/doc
跳至導覽
跳至搜尋
此頁面為 Module:ColorManipulation 的說明文件
本模塊封裝一系列簡單的色彩操作,以適應不同的使用需求。
功能函數
應被模板封裝以提供對外使用的接口。
p.luminThres
為顏色的亮度設置一個門限值,當超過該門限值時自動降低亮度。
- 輸入:
- 顏色代碼
- 門限值,取值為0~1。
- 輸出:處理後的顏色代碼。
p.valThres
為顏色的明度設置一個門限值,當超過該門限值時自動降低亮度。
- 輸入:
- 顏色代碼
- 門限值,取值為0~1。
- 輸出:處理後的顏色代碼。
p.hueShift
對顏色的色相進行增減操作。
- 輸入:
- 顏色代碼
- 偏移度(以360為整個色環)
- 輸出:處理後的顏色代碼。
p.colorMix
混合兩種顏色。
- 輸入:
- 兩個顏色各自的顏色代碼
- 兩種顏色在混合時的權重,取值為0~1;越靠近0點第一種顏色的權重越大,反之亦然。
- 輸出:處理後的顏色代碼。
輔助函數
文本處理
parseString
校驗輸入的十六進位顏色代碼並轉換為RGB值。
- 輸入:
- 顏色代碼
- 輸出
- RGB值
- 指定原顏色代碼是否帶#號的標識(0為無,1為有)
parseRGB
將輸入的RGB值轉換為十六進位顏色代碼。
- 輸入:
- RGB值
- 指定原顏色代碼是否帶#號的標識(0為無,1為有)
- 輸出
- 顏色代碼,以原格式輸出
HSL顏色
rgbToHsl
將RGB顏色轉換為HSL顏色。
- 輸入:
- RGB值
- 輸出
- HSL值
hslToRgb
將HSL顏色轉換為RGB顏色。
- 輸入:
- HSL值
- 輸出
- RGB值
HSV顏色
rgbToHsv
將RGB顏色轉換為HSV顏色。
- 輸入:
- RGB值
- 輸出
- HSV值
hsvToRgb
將HSV顏色轉換為RGB顏色。
- 輸入:
- HSV值
- 輸出
- RGB值
XYZ顏色
- 本模板XYZ顏色的Y值為相對亮度 (Relative Luminance),選用CIE 1931 XYZ標準中定義的參數,即Web Content Accessibility Guidelines 2.0標準中相應的相對亮度定義。
- 根據該標準中的參數,對RGB向XYZ的轉換,其內部處理過程如下:
- 將原始的sRGB值標準化(重新映射):
- R,G,B值為原始值的1/255。
- 對於R值,若R<=0.03928,則標準化的Rnom值為R/12.92,否則為((R+0.055)/1.055)^2.4。
- G, B的計算方法相同。
- 將R/G/B值矩陣乘以下列矩陣:
0.4124564 | 0.3575761 | 0.1804375 |
0.2126729 | 0.7151522 | 0.0721750 |
0.0193339 | 0.1191920 | 0.9503041 |
- 得到的新矩陣分別代表X, Y與Z值。
- 相應的,將XYZ向RGB轉換的逆操作則需作相應的逆運算,即乘上逆矩陣並經反函數處理(反標準化)得到RGB值。
rgbToXyz
將RGB顏色轉換為XYZ顏色。
- 輸入:
- RGB值
- 輸出
- XYZ值
xyzToRgb
將XYZ顏色轉換為RGB顏色。
- 輸入:
- XYZ值
- 輸出
- RGB值