目錄
-
Web顏色
- HTML4
- CSS1
- CSS2
- CSS3
- HTML5
介紹
安裝
導入
-
規(guī)范
- 對于十六進制值指定的顏色
- 對于整數和百分數rgb()三元組
- 對于顏色名稱
-
內容
-
數據類型
- webcolors.
IntegerRGB
(red, green, blue) - webcolors.
PercentRGB
(red, green, blue) - webcolors.
HTML5SimpleColor
(red, green, blue)
- webcolors.
-
常量
-
規(guī)格標識符
webcolors.CSS2 == "css2"
webcolors.CSS21 == "css21"
webcolors.CSS3 == "css3"
webcolors.HTML4 == "html4"
-
從名稱到十六進制值的映射
webcolors.HTML4_NAMES_TO_HEX
webcolors.CSS2_NAMES_TO_HEX
webcolors.CSS21_NAMES_TO_HEX
webcolors.CSS3_NAMES_TO_HEX
-
從十六進制值到名稱的映射
webcolors.HTML4_HEX_TO_NAMES
webcolors.CSS2_HEX_TO_NAMES
webcolors.CSS21_HEX_TO_NAMES
webcolors.CSS3_HEX_TO_NAMES
-
-
歸一化函數
- webcolors.
normalize_hex
(hex_value) - webcolors.
normalize_integer_triplet
(rgb_triplet) - webcolors.
normalize_percent_triplet
(rgb_triplet)
- webcolors.
-
顏色名稱 —— 十六進制征冷、整數rgb三元組、百分數rgb三元組
- webcolors.
name_to_hex
(name, spec=CSS3) - webcolors.
name_to_rgb
(name, spec=CSS3) - webcolors.
name_to_rgb_percent
(name, spec=CSS3)
- webcolors.
-
十六進制字符串 —— 顏色名稱毁腿、整數rgb三元組单旁、百分數rgb三元組
- webcolors.
hex_to_name
(hex_value, spec=CSS3) - webcolors.
hex_to_rgb
(hex_value) - webcolors.
hex_to_rgb_percent
(hex_value)
- webcolors.
-
整數rgb三元組 —— 顏色名稱铁坎、十六進制、百分數rgb三元組
- webcolors.
rgb_to_name
(rgb_triplet, spec=CSS3) - webcolors.
rgb_to_hex
(rgb_triplet) - webcolors.
rgb_to_rgb_percent
(rgb_triplet)
- webcolors.
-
百分數rgb三元組 —— 顏色名稱、十六進制、整數rgb三元組
- webcolors.
rgb_percent_to_name
(rgb_percent_triplet, spec=CSS3) - webcolors.
rgb_percent_to_hex
(rgb_percent_triplet) - webcolors.
rgb_percent_to_rgb
(rgb_percent_triplet)
- webcolors.
-
HTML5 顏色算法
- webcolors.
html5_parse_simple_color
(input) - webcolors.
html5_parse_legacy_color
(input) - webcolors.
html5_serialize_simple_color
(simple_color)
- webcolors.
-
Web顏色
web上的顏色通常在RGB顏色空間
中指定烘豌,每種顏色由紅色分量、綠色分量和藍色分量組成看彼,這三者映射到計算機顯示器像素的紅色分量廊佩、綠色分量和藍色分量,以及人眼的三種視錐細胞靖榕。Web顏色的每個分量由8位二進制組成标锄,所以一種顏色是3 * 8 = 24位。一共有2^8 * 2^8 * 2^8 = 256 * 256 * 256 = 16,777,216 中顏色茁计。
-
HTML4
“#”后跟三對十六進制數字料皇,按順序指定紅、綠星压、藍三個分量的值践剂。如“
#0099cc
”。-
一組預定義的顏色名稱娜膘,對應于特定的十六進制值逊脯。HTML4定義了16種,如“
blue
”竣贪。"aqua": "#00ffff", "black": "#000000", "blue": "#0000ff", "fuchsia": "#ff00ff", "green": "#008000", "gray": "#808080", ......
-
CSS1
“#”后跟三個十六進制數字军洼,通過重復每個數字來擴展為三個十六進制對。如“
#09c
” == “#0099cc”演怎。字符串“rgb”后跟三個范圍在(0~255)的十進制整數歉眷,分別被視為紅、綠颤枪、藍的分量值汗捡。如“
rgb(0, 153, 204)
”.-
同上,但以百分數取而代之。如“
rgb(0%, 60%, 50%)
”扇住。CSS1還建議一組16種顏色名稱春缕。這些名稱與HTML 4中定義的集合相同,但是CSS1沒有提供它們的值的定義艘蹋,并聲明它們取自“Windows VGA調色板”锄贼。
-
CSS2
在顏色部分中,CSS2允許使用與CSS1相同的方法來指定顏色女阀,并為16種命名的顏色定義和提供值宅荤,與HTML 4中的集合相同。
CSS2還指定了系統(tǒng)顏色的名稱列表浸策。它們沒有固定的顏色值冯键,但會從操作系統(tǒng)或其他用戶界面獲取值,并允許元素使用與周圍用戶界面相同的顏色進行樣式化庸汗。這些名稱在CSS3中已被棄用惫确。
"aqua": "#00ffff", "black": "#000000", "blue": "#0000ff", "fuchsia": "#ff00ff", ......
CSS2.1版本沒有添加任何指定RGB顏色的新方法,但定義了一個額外的名為顏色:“orange”蚯舱。
"aqua": "#00ffff", "black": "#000000", "blue": "#0000ff", "fuchsia": "#ff00ff", "green": "#008000", "gray": "#808080", "lime": "#00ff00", ......
-
CSS3
CSS3顏色模塊增加了一種指定顏色的新方法:
一個色調-飽和度-亮度三元組(HSL)改化,使用構造
hsl(h, s, l)
。
CSS3還增加了對顏色不透明度的支持枉昏,通過rgba(r, g, b, a)
和hsla(h, s, l, a)
構造允許alpha通道信息的規(guī)范陈肛。它們的使用類似于rgb()和hsl()構造,只是提供了第四個值兄裂,表示不透明度級別從0.0(完全透明)到1.0(完全不透明)句旱。雖然從技術上來說不是一種顏色,但關鍵字transparent也可用來代替顏色值懦窘,并對應于rgba(0,0,0,0)前翎。CSS3還新定義了一組147個顏色名稱。該集合直接取自為SVG (Scalable Vector Graphics)標記定義的命名顏色畅涂,是CSS2.1中定義的命名顏色的超集港华。
"aliceblue": "#f0f8ff", "antiquewhite": "#faebd7", "aqua": "#00ffff", "aquamarine": "#7fffd4", "azure": "#f0ffff", "beige": "#f5f5dc", "bisque": "#ffe4c4", "black": "#000000", "blanchedalmond": "#ffebcd", ......
-
HTML5
HTML5沒有引入任何指定顏色的新方法,但簡化了對顏色的描述午衰,并引入了有用的術語立宜。
-
簡單顏色
一組三個八位數代表RGB顏色的紅、綠臊岸、藍分量橙数。
-
有效簡單顏色
以“#”開頭緊跟六個ASCII十六進制數字的七個字符字符串。如“
#A-Fa-f0-9
”帅戒。 -
有效小寫簡單顏色
僅使用小寫ASCII十六進制數字表示的有效簡單顏色灯帮。如“
#a-f0-9
”崖技。
-
介紹
這個模塊提供了實用函數,用于處理HTML和CSS規(guī)范定義的顏色名稱和顏色值格式钟哥,以便在web文檔中使用迎献。
webcolors模塊支持以下方法來指定RGB顏色,以及它們之間的轉換::
- HTML4腻贰、CSS2吁恍、CSS2.1和CSS3的已定義命名顏色
- 六位十六進制
- 三位十六進制
- 整數rgb(r, g, b)三元組
- 百分數rgb(r, g, b)三元組
webcolors模塊不支持:
- CSS1命名的沒有定義值的顏色
- CSS2沒有固定值的系統(tǒng)顏色
- 指示顏色的有效缺失的透明關鍵字
- 通過rgba()構造指定的Opacity/alpha-channel信息
- 通過HSL()或hsla()構造在HSL顏色空間中指定的顏色
安裝
pip install webcolors
導入
import webcolors
規(guī)范
webcolors中的函數的字符串參數必須傳入str
類型,不能是bytes
類型播演。
-
對于十六進制值指定的顏色
-
輸入
字符#后面跟著三個十六進制數字冀瓦,其中數字A-F可以是大寫或小寫。如“
#AF0
”或“#af0
”写烤。-
字符#后面跟著六個十六進制數字翼闽,其中數字A-F可以是大寫或小寫锣吼。如“
#AAFF00
”或“#aaff00
”读恃。(當所有數字都是大寫時西雀,HTML5指定一個“有效的簡單顏色”,當所有數字都是小寫時,指定一個“有效的小寫簡單顏色”)
-
輸出
- 字符#后面跟著6個十六進制數字,數字a - f被強制變成小寫(這是HTML5指定的“有效的小寫簡單顏色”)。即“
#aaff00
”
- 字符#后面跟著6個十六進制數字,數字a - f被強制變成小寫(這是HTML5指定的“有效的小寫簡單顏色”)。即“
如果需要枫浙,可以使用函數
normalize_hex()
手動執(zhí)行這種歸一化盔然。 -
-
對于整數和百分數rgb()三元組
使用整型rgb()三元組的函數接受它們?yōu)镻ython的int三元組鹅搪。
使用percentage rgb()三元組的函數接受它們?yōu)镻ython的字符串三元組甫题。
所有處理整數或百分比rgb()三元組的函數都接受純元組赦抖,但也提供了三種類型的
namedtuple()
來表示這些值:IntegerRGB
表示整數三元組辅肾,PercentRGB
表示百分比三元組队萤,HTML5SimpleColor
表示HTML5簡單顏色。返回整數或百分比rgb()三元組或HTML5簡單顏色的函數將返回這些類型的值矫钓。在內部要尔,Python float用于與三元組表示的某些轉換;對于每個函數舍杜,其結果的精度可能受此影響,在文檔中提供了說明赵辕。
對于通過rgb()三元組指定的顏色既绩,包含在三元組中的值將按照CSS裁剪規(guī)則被規(guī)范化:
- 小于0的整數值將被規(guī)范化為0,小于0%的百分比值將被規(guī)范化為0%还惠。
- 大于255的整數值將被規(guī)范化為255饲握,大于100%的百分比值將被規(guī)范化為100%。
- --0和-0%將分別歸一化為0和0%蚕键。
如果需要救欧,可以使用函數
normalize_integer_triplet()
和normalize_percent_triplet()
手動執(zhí)行這種標準化。
-
對于顏色名稱
對于通過預定義名稱指定的顏色锣光,webcolors將接受包含名稱 大小寫不敏感 的字符串笆怠,只要它們不包含空格或非字母字符。因此誊爹,例如蹬刷,' AliceBlue '和' aliceblue '都被接受,并且都將指向相同的顏色:rgb(240,248,255)频丘。
對于由顏色名稱組成的輸出办成,以及在返回另一種格式的結果之前執(zhí)行中間轉換到預定義名稱的函數,webcolors總是將這些值規(guī)范化為完全小寫椎镣。
HTML 4诈火、CSS1和CSS2都定義了一種名為"gray"的顏色兽赁。在CSS3中状答,這個顏色可以命名為"gray"或"grey",其他幾個相關的顏色值在CSS3中各有兩個名稱:"darkgray/darkgrey", "darkslategray/darkslategrey", "dimgray/dimgrey", "lightgray/lightgrey", "lightslategray/lightslategrey", "slategray/slategrey"刀崖。
從十六進制值惊科、整數元組或百分比元組反轉到這些顏色的名稱,需要選擇一種拼寫亮钦,而webcolors選擇灰色"gray"拼寫馆截,以與HTML 4、CSS1和CSS2保持一致蜂莉。
內容
-
數據類型
-
webcolors.
IntegerRGB
(red, green, blue)參數
-
red
: int (0~255)蜡娶。 -
green
: int(0~255)。 -
blue
: int(0~255)映穗。
返回
創(chuàng)建一個
IntegerRGB對象
窖张。 -
-
-
webcolors.
PercentRGB
(red, green, blue)參數
-
red
: str (%0~100%)。 -
green
: str (%0~100%)蚁滋。 -
blue
: str (%0~100%)宿接。
返回
創(chuàng)建一個
PercentRGB對象赘淮。
-
-
webcolors.
HTML5SimpleColor
(red, green, blue)參數
-
red
: int (0~255)。 -
green
: int(0~255)睦霎。 -
blue
: int(0~255)梢卸。
返回
創(chuàng)建一個
HTML5SimpleColor對象
。 -
-
常量
- 規(guī)格標識符
webcolors.CSS2 == "css2" webcolors.CSS21 == "css21" webcolors.CSS3 == "css3" webcolors.HTML4 == "html4"
- 從名稱到十六進制值的映射
webcolors.HTML4_NAMES_TO_HEX == {'aqua': '#00ffff', 'black': '#000000', 'blue': '#0000ff', ...} webcolors.CSS2_NAMES_TO_HEX == {'aqua': '#00ffff', 'black': '#000000', 'blue': '#0000ff', ...} webcolors.CSS21_NAMES_TO_HEX == {'orange': '#ffa500', 'aqua': '#00ffff', ...} webcolors.CSS3_NAMES_TO_HEX == {'aliceblue': '#f0f8ff', 'antiquewhite': '#faebd7', ...}
- 從十六進制值到名稱的映射
webcolors.HTML4_HEX_TO_NAMES == {'#00ffff': 'aqua', '#000000': 'black', '#0000ff': 'blue', ...}
webcolors.CSS2_HEX_TO_NAMES == {'#00ffff': 'aqua', '#000000': 'black', '#0000ff': 'blue', ...}
webcolors.CSS21_HEX_TO_NAMES == {'#ffa500': 'orange', '#00ffff': 'aqua', '#000000': 'black', ...}
webcolors.CSS3_HEX_TO_NAMES == {'#f0f8ff': 'aliceblue', '#faebd7': 'antiquewhite', ...}
-
歸一化函數
-
webcolors.
normalize_hex
(hex_value)將16進制顏色值歸一化為一個字符串副女,由字符#后跟6個小寫16進制數字組成(HTML5稱之為“有效的小寫簡單顏色”)蛤高。
參數
-
hex_value
: str。要歸一化的十六進制顏色值碑幅。
返回
str
襟齿。歸一化后的十六進制顏色值。示例
# 標準則正常輸出 webcolors.normalize_hex('#0099cc') --> '#0099cc' # 全部小寫化 webcolors.normalize_hex('#0099CC') --> '#0099cc' # 三位轉六位 webcolors.normalize_hex('#09c') --> '#0099cc' # 三位轉六位并全部小寫化 webcolors.normalize_hex('#09C') --> '#0099cc'
-
-
-
webcolors.
normalize_integer_triplet
(rgb_triplet)歸一化一個整數rgb()三元組枕赵,使所有值都在(0~255)范圍內猜欺。
參數
-
rgb_triplet
: tuple。要歸一化的整數rgb()三元組或IntegerRGB
對象拷窜。
返回
歸一化后的
IntegerRGB
對象开皿。示例
# 標準則正常輸出 webcolors.normalize_integer_triplet((128, 128, 128)) --> IntegerRGB(red=128, green=128, blue=128) # >255的值化為255,<0的值化為0篮昧,-0化為0 webcolors.normalize_integer_triplet((270, -20, -0)) --> IntegerRGB(red=255, green=0, blue=0) webcolors.normalize_integer_triplet(webcolors.IntegerRGB(270, -20, -0)) --> IntegerRGB(red=255, green=0, blue=0)
-
-
webcolors.
normalize_percent_triplet
(rgb_triplet)歸一化一個百分數rgb()三元組赋荆,使所有值都在(0%~100%)范圍內。
參數
-
rgb_triplet
: tuple懊昨。要歸一化的百分數rgb()三元組或PercentRGB
對象窄潭。
返回
歸一化后的
PercentRGB
對象。示例
# 標準則正常輸出 webcolors.normalize_percent_triplet(('50%', '50%', '50%')) --> PercentRGB(red='50%', green='50%', blue='50%') # >100%的值化為100%酵颁,<0%的值化為0%嫉你,-0%化為0% webcolors.normalize_percent_triplet(('-10%', '-0%', '500%')) --> PercentRGB(red='0%', green='0%', blue='100%') webcolors.normalize_percent_triplet(webcolors.PercentRGB('-10%', '-0%', '500%')) --> PercentRGB(red='0%', green='0%', blue='100%')
-
-
顏色名稱 —— 十六進制、整數rgb三元組躏惋、百分數rgb三元組
-
webcolors.
name_to_hex
(name, spec=CSS3)參數
-
name
:str幽污。顏色名稱。 -
spec
: [webcolors.CSS3, webcolors.HTML4, webcolors.CSS2, webcolors.CSS21], 默認webcolors.CSS3簿姨。指定轉換標準距误。指定顏色名稱必須在該規(guī)范中定義了值。
返回
str扁位。
六位十六進制字符串
准潭。示例
webcolors.name_to_hex("red") --> "#ff0000"
-
-
-
webcolors.
name_to_rgb
(name, spec=CSS3)參數
-
name
:str。顏色名稱域仇。 -
spec
: [webcolors.CSS3, webcolors.HTML4, webcolors.CSS2, webcolors.CSS21], 默認webcolors.CSS3刑然。指定轉換標準。指定顏色名稱必須在該規(guī)范中定義了值殉簸。
返回
IntegerRGB
對象闰集。示例
webcolors.name_to_rgb("red") --> IntegerRGB(red=255, green=0, blue=0)
-
-
webcolors.
name_to_rgb_percent
(name, spec=CSS3)參數
-
name
:str沽讹。顏色名稱。 -
spec
: [webcolors.CSS3, webcolors.HTML4, webcolors.CSS2, webcolors.CSS21], 默認webcolors.CSS3武鲁。指定轉換標準爽雄。指定顏色名稱必須在該規(guī)范中定義了值。
返回
PercentRGB
對象沐鼠。示例
webcolors.name_to_rgb_percent("red") --> PercentRGB(red='100%', green='0%', blue='0%')
-
-
十六進制 —— 顏色名稱挚瘟、整數rgb三元組、百分數rgb三元組
-
webcolors.
hex_to_name
(hex_value, spec=CSS3)參數
-
hex_value
:str饲梭。三位十六進制字符串或六位十六進制字符串乘盖。 -
spec
: [webcolors.CSS3, webcolors.HTML4, webcolors.CSS2, webcolors.CSS21], 默認webcolors.CSS3。指定轉換標準憔涉。指定顏色名稱必須在該規(guī)范中定義了值订框。
返回
str
。顏色名稱兜叨。示例
webcolors.hex_to_name("#fff") --> "white" webcolors.hex_to_name("#ffffff") --> "white"
-
-
-
webcolors.
hex_to_rgb
(hex_value)參數
-
hex_value
:str穿扳。三位十六進制字符串或六位十六進制字符串。
返回
IntegerRGB
對象国旷。示例
webcolors.hex_to_rgb("#fff") --> IntegerRGB(red=255, green=255, blue=255) webcolors.hex_to_rgb("#ffffff") --> IntegerRGB(red=255, green=255, blue=255)
-
-
webcolors.
hex_to_rgb_percent
(hex_value)參數
-
hex_value
:str矛物。三位十六進制字符串或六位十六進制字符串。
返回
PercentRGB
對象跪但。示例
webcolors.hex_to_rgb_percent("#fff") --> PercentRGB(red='100%', green='100%', blue='100%') webcolors.hex_to_rgb_percent("#ffffff") --> PercentRGB(red='100%', green='100%', blue='100%')
-
-
整數rgb三元組 —— 顏色名稱履羞、十六進制、百分數rgb三元組
-
webcolors.
rgb_to_name
(rgb_triplet, spec=CSS3)參數
-
rgb_triplet
:整數三元組或IntegerRGB
對象屡久。 -
spec
: [webcolors.CSS3, webcolors.HTML4, webcolors.CSS2, webcolors.CSS21], 默認webcolors.CSS3忆首。指定轉換標準。指定顏色名稱必須在該規(guī)范中定義了值涂身。
返回
str
雄卷。顏色名稱。示例
webcolors.rgb_to_name((255, 0, 0)) --> "red" webcolors.rgb_to_name(webcolors.IntegerRGB(255, 0, 0)) --> "red"
-
-
-
webcolors.
rgb_to_hex
(rgb_triplet)參數
-
rgb_triplet
:整數三元組或IntegerRGB
對象蛤售。
返回
str
。六位十六進制顏色字符串妒潭。示例
webcolors.rgb_to_hex((255, 0, 0)) --> "#ff0000" webcolors.rgb_to_hex(webcolors.IntegerRGB(255, 0, 0)) --> "#ff0000"
-
-
webcolors.
rgb_to_rgb_percent
(rgb_triplet)參數
-
rgb_triplet
:整數三元組或IntegerRGB
對象悴能。
返回
`PercentRGB`對象。
示例
webcolors.rgb_to_rgb_percent((255, 0, 0)) --> PercentRGB(red='100%', green='0%', blue='0%') webcolors.rgb_to_rgb_percent(webcolors.IntegerRGB(255, 0, 0)) --> PercentRGB(red='100%', green='0%', blue='0%')
-
-
百分數rgb三元組 —— 顏色名稱雳灾、十六進制漠酿、整數rgb三元組
-
webcolors.
rgb_percent_to_name
(rgb_percent_triplet, spec=CSS3)參數
-
rgb_percent_triplet
:百分數三元組或PercentRGB
對象。 -
spec
: [webcolors.CSS3, webcolors.HTML4, webcolors.CSS2, webcolors.CSS21], 默認webcolors.CSS3谎亩。指定轉換標準炒嘲。指定顏色名稱必須在該規(guī)范中定義了值宇姚。
返回
str
。顏色名稱夫凸。示例
webcolors.rgb_percent_to_name(("100%", "0%", "0%")) --> "red" webcolors.rgb_percent_to_name(webcolors.PercentRGB("100%", "0%", "0%")) --> "red"
-
-
-
webcolors.
rgb_percent_to_hex
(rgb_percent_triplet)參數
-
rgb_percent_triplet
:百分數三元組或PercentRGB
對象浑劳。
返回
str
。六位十六進制字符串夭拌。示例
webcolors.rgb_percent_to_hex(("100%", "0%", "0%")) --> "#ff0000" webcolors.rgb_percent_to_hex(webcolors.PercentRGB("100%", "0%", "0%")) --> "#ff0000"
-
-
webcolors.
rgb_percent_to_rgb
(rgb_percent_triplet)參數
-
rgb_percent_triplet
:百分數三元組或PercentRGB
對象魔熏。
返回
IntegerRGB
對象。示例
webcolors.rgb_percent_to_rgb(("100%", "0%", "0%")) --> IntegerRGB(red=255, green=0, blue=0) webcolors.rgb_percent_to_rgb(webcolors.PercentRGB("100%", "0%", "0%")) --> IntegerRGB(red=255, green=0, blue=0)
-
- HTML5 顏色算法
-
webcolors.
html5_parse_simple_color
(input)應用HTML5簡單的顏色解析算法鸽扁。
參數
-
input
: str蒜绽。必須是六位十六進制字符串。
返回
HTML5SimpleColor
對象桶现。示例
webcolors.html5_parse_simple_color("#ff00cc") --> HTML5SimpleColor(red=255, green=0, blue=204)
-
-
webcolors.
html5_parse_legacy_color
(input)應用HTML5傳統(tǒng)的顏色解析算法躲雅。
參數
-
input
: str。顏色名稱骡和、三位十六進制或六位十六進制吏夯。不能是“transparent"。
返回
HTML5SimpleColor
對象即横。示例
webcolors.html5_parse_legacy_color("red") --> HTML5SimpleColor(red=255, green=0, blue=0) webcolors.html5_parse_legacy_color("#fca") --> HTML5SimpleColor(red=255, green=204, blue=170) webcolors.html5_parse_legacy_color("#ffccaa") --> HTML5SimpleColor(red=255, green=204, blue=170)
-
-
webcolors.
html5_serialize_simple_color
(simple_color)應用HTML5簡單的顏色序列化算法噪生。
參數
-
simple_color
: tuple。必須是整數三元組东囚。
返回
str
跺嗽。六位十六進制顏色字符串。示例
webcolors.html5_serialize_simple_color((255,134,233)) --> "#ff86e9"
-