2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

模組: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值