【Python】【进阶篇】六、Pillow的图像颜色处理

目录

  • 六、Pillow的图像颜色处理
  • 6.1 颜色命名
  • 6.2 getrgb()方法
  • 6.3 getcolor()方法

六、Pillow的图像颜色处理

Pillow 提供了颜色处理模块 ImageColor,该模块支持不同格式的颜色,比如 RGB 格式的颜色三元组、十六进制的颜色名称(#ff0000)以及颜色英文单词(“red”)。同时,它还可以将 CSS(层叠样式表,用来修饰网页)风格的颜色转换为 RGB 格式。

注意,在 ImageColor 模块对颜色的大小并不敏感,比如 “Red” 也可以写为 " red"。

6.1 颜色命名

ImageColor 支持多种颜色模式的的命名(即使用固定的格式对颜值进行表示),比如我们熟知的 RGB 色彩模式,除此之外,还有 HSL (色调-饱和度-明度)、HSB (又称 HSV,色调-饱和度-亮度)色彩模式。

  • H:即 Hue 色调,取值范围 0 -360,其中 0 表示“red”,120 表示 “green”,240 表示“blue”;
  • S:即 Saturation 饱和度,代表色彩的纯度,取值 0~100%,其中 0 代表灰色(gry),100% 表示色光最饱和;
  • L:即 Lightness 明度,取值为 0~100%,其中 0 表示“black”黑色,50% 表示正常颜色,100% 则表示白色。

格式如下: HSL(0,100%,50%) 表示红色

6.2 getrgb()方法

该函数用来得到颜色的 RGB 值。

语法格式:PIL.ImageColor.getrgb(color)

from PIL import ImageColor

# getrgb()方法
color1 = ImageColor.getrgb("blue")
print(color1)
color2 = ImageColor.getrgb('#DCDCDC')
print(color2)
# 使用HSL模式红色
color3 = ImageColor.getrgb('HSL(0,100%,50%)')
print(color3)

上级代码的执行结果 -

(0, 0, 255)
(220, 220, 220)
(255, 0, 0)

通过 new() 方法可以新建图像

from PIL import ImageColor, Image

# 使用new()绘制新的图像
im = Image.new("RGB", (200, 200), ImageColor.getrgb("#EEB4B4"))
im.save("./xin.jpg")

6.3 getcolor()方法

该方法与 getrgb() 类似,同样用来获取颜色值,不过它多了一个mode参数。

语法格式: PIL.ImageColor.getcolor(color, mode)

  • color:一个颜色名称,字符串格式,可以是颜色的英文单词,或者十六进制颜色名。如果是不支持的颜色,会报 ValueError 错误;
  • mode:指定色彩模式,如果是不支持的模式,会报 KeyError 错误。
from PIL import ImageColor

color4 = ImageColor.getcolor('#EEA9B8', 'L')
print(color4)
color5 = ImageColor.getcolor('yellow', 'RGBA')
print(color5)

上面代码的执行结果 -

191
(255, 255, 0, 255)

你可能感兴趣的:(Python,#,Pillow库,python,pillow,开发语言)