简介
PIL模块(Python Image Library)是Python中处理图像的标准库,功能强大,API简单易用。
PIL仅支持到Python2.7,Python3.x的兼容版本名为Pillow,因此我们需要通过pip手动安装:
pip install pillow
注意:尽管 PIL在Python3.x下改名为Pillow,但在导入模块时仍然使用PIL
ImageColor模块
该模块主要用于将CSS3颜色值转换成RGB元组
支持的颜色字符串
- 十六进制颜色值
该模块支持标准十六进制颜色值(#rrggbb)和简写(#rgb),例如 "#ff0000"和"f00"都能得到支持 - RGB函数
RGB函数即"rgb(red,green,blue)" ,变量的取值为0-255或0-100% - HSL(Hue-Saturation-Lightness)函数
H:Hue 色相
S:Saturation 饱和度
L:Lightness 明度
HSL函数即"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颜色名称(单词)
支持标准颜色名称,并且对单词大小写不敏感
方法
- getrgb(color)
参数color为上述支持的颜色字符串
返回rgb元组
#从PIL库中导入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不指定为颜色或调色板图像,该方法会将color转换成灰色值。
返回RGB元组或数字
mode
:模式,该参数决定图像中像素的类型和深度
pillow库支持以下mode:
- 1 1位像素,表示黑和白,但是存储的时候每个像素存储为8bit
- L 8位像素,表示黑和白
- P 8位像素,使用调色板映射到其他模式
- 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
当传入的字符串无法被解析时,将会抛出ValueError异常