簡介
PIL模塊(Python Image Library)是Python中處理圖像的標(biāo)準(zhǔn)庫锯仪,功能強(qiáng)大,API簡單易用于毙。
PIL僅支持到Python2.7,Python3.x的兼容版本名為Pillow,因此我們需要通過pip手動(dòng)安裝:
pip install pillow
注意:盡管 PIL在Python3.x下改名為Pillow搬泥,但在導(dǎo)入模塊時(shí)仍然使用PIL
ImageColor模塊
該模塊主要用于將CSS3顏色值轉(zhuǎn)換成RGB元組
支持的顏色字符串
- 十六進(jìn)制顏色值
該模塊支持標(biāo)準(zhǔn)十六進(jìn)制顏色值(#rrggbb)和簡寫(#rgb),例如 "#ff0000"和"f00"都能得到支持 - RGB函數(shù)
RGB函數(shù)即"rgb(red,green,blue)" ,變量的取值為0-255或0-100% - HSL(Hue-Saturation-Lightness)函數(shù)
H:Hue 色相
S:Saturation 飽和度
L:Lightness 明度
HSL函數(shù)即"hsl(hue,saturation%,lightness%)"
hue的范圍為0-360(red=0,green=120,blue=240)
saturation的范圍為0-100% (gray=0%,full color=100%)
lightness的范圍為0-100% (black=0%,normal=50%,white=100%)
- 通用HTML顏色名稱(單詞)
支持標(biāo)準(zhǔn)顏色名稱伏尼,并且對(duì)單詞大小寫不敏感
方法
- getrgb(color)
參數(shù)color為上述支持的顏色字符串
返回rgb元組
#從PIL庫中導(dǎo)入ImageColor模塊
from PIL import ImageColor
print(ImageColor.getrgb("silver")) #(192,192,192)
print(ImageColor.getrgb("#f35772")) #(243,87,114)
print(ImageColor.getrgb("hsl(137,20%,50%)")) #(102, 153, 116)
- getcolor(color, mode)
該方法類似于getrgb,如果mode不指定為顏色或調(diào)色板圖像忿檩,該方法會(huì)將color轉(zhuǎn)換成灰色值。
返回RGB元組或數(shù)字
mode
:模式爆阶,該參數(shù)決定圖像中像素的類型和深度
pillow庫支持以下mode:
- 1 1位像素捌省,表示黑和白钟沛,但是存儲(chǔ)的時(shí)候每個(gè)像素存儲(chǔ)為8bit
- L 8位像素,表示黑和白
- P 8位像素,使用調(diào)色板映射到其他模式
- RGB 3x8位像素误证,為真彩色
- RGBA 4x8位像素,有透明通道的真彩色
- CMYK 4x8位像素附迷,顏色分離
- HSV 3x8位像素,色相彭则、飽和度以及明度色彩空間
from PIL import ImageColor
print(ImageColor.getcolor("red","RGBA")) #(255, 0, 0, 255)
print(ImageColor.getcolor("red","P")) #(255, 0, 0)
print(ImageColor.getcolor("red","L")) #76
print(ImageColor.getcolor("red","1")) #76
當(dāng)傳入的字符串無法被解析時(shí),將會(huì)拋出ValueError異常