Python图像处理库PIL的ImageColor模块介绍

ImageColor模块包括颜色表格和从CSS3样式颜色转化为RGB元组的转换器。除了别的,这个模块多用于Image.new函数和ImageDraw模块。

一、ImageColor模块支持的字符串

ImageColor模块支持的字符串格式如下:

1、  十六进制颜色说明符

定义为“#rgb”或者“#rrggbb”。例如,“#ff0000”表示纯红色。

2、  RGB函数

定义为“rgb(red, green,blue)”,变量redgreenblue的取值为[0255]之间的整数。另外,颜色值也可以为[0%100%]之间的三个百分比。例如,“rgb(255, 0, 0)”和“rgb(100%, 0%, 0%)”都表示纯红色。

3、  HSLHue-Saturation-Lightness)函数

定义为“hsl(hue,saturation%, lightness%)”,变量hue[0360]一个角度表示颜色(red=0 green=120 blue=240),变量saturation[0%100%]之间的一个值(gray=0%full color=100%),变量lightness[0%100%]之间的一个值(black=0% normal=50% white=100%)。例如,“hsl(0, 100%, 50%)”为纯红色。

4、  通用HTML颜色名称

ImageColor模块提供了140个标准颜色名称,Xwindow系统和大多数web浏览器都支持这些颜色。颜色名称对大小写不敏感。例如,“red”和“Red”都表示纯红色。

二、ImageColor模块的函数

1、  Getrgb

定义:getrgb(color) (red, green, blue)

含义:(New in 1.1.4)将颜色字符串转换为RGB元组。如果字符串不能被解析,该函数将产生ValueError异常。

例子:

>>> from PIL import ImageColor

>>>ImageColor.getrgb("#ff0000")

(255, 0, 0)

>>>ImageColor.getrgb("rgb(255,0,0)")

(255, 0, 0)

>>>ImageColor.getrgb("rgb(100%,0%,0%)")

(255, 0, 0)

>>>ImageColor.getrgb("hsl(0,100%,50%)")

(255, 0, 0)

>>>ImageColor.getrgb("red")

(255, 0, 0)

>>>ImageColor.getrgb("Red")

(255, 0, 0)

上述例子使用六种方式来产生红色。

2、  getcolor

定义:getcolor(color,mode) (red, green,blue) or integer

含义:(New in 1.1.4)和函数getrgb()功能一样,但是如果变量mode不是颜色或者调色板图像,它将RGB值转换为灰色值。如果字符串不能被解析,该函数将产生ValueError异常。

例子:

>>>from PIL import ImageColor

>>>ImageColor.getcolor("Red", "RGB")

(255, 0, 0)

>>>ImageColor.getcolor("Red", "L")

76

>>>ImageColor.getcolor("Red", "P")

(255, 0, 0)

>>>ImageColor.getcolor("Red", "1")

76

>>>ImageColor.getcolor("rgb(200,0,0)", "1")

59

由上面的例子可看出来,如果变量mode不是“RGB”或者“P”的时候,该函数会将颜色转换为一个整数,即灰度值。

你可能感兴趣的:(图像处理)