Pillow图像颜色处理的具体使用

 更新时间:2021年11月23日 16:12:31   投稿:zx  
Pillow 提供了颜色处理模块 ImageColor,该模块支持不同格式的颜色,可以修改RGB的颜色,具有一定的参考价值,感兴趣的可以了解一下

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

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

颜色命名

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

  • 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 色彩模式表示红色,格式如下:

HSL(0,100%,50%)

此时的颜色为“纯红色”,等同于 RGB (255,0,0)。如果想了解有关 HSL/HSB 的更多知识,点击链接前往。

ImageColor 模块比较简单,只提供了两个常用方法,分别是 getrgb() 和 getcolor() 函数。

getrgb()方法

顾名思义,该函数用来得到颜色的 RGB 值,语法格式如下:

PIL.ImageColor.getrgb(color)

使用示例如下:

from PIL import Image,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() 方法可以新建图像,此时也可以使用 ImageColor.getrgb(),如下所示:

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

显示图片如下:

图1:新建图像

getcolor()

该方法与 getrgb() 类似,同样用来获取颜色值,不过它多了一个mode参数,因此该函数可以获取指定色彩模式的颜色值。语法格式如下:

PIL.ImageColor.getcolor(color, mode)

参数说明如下:

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

使用示例如下:

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

输出结果:

191

(255, 255, 0, 255)

示例——修改证件照背景色

import PIL.Image as Image
 
#============1.打开图片============
img = Image.open('1.jpg')
 
#============2.处理图片============
#将图片分成小方块
img_array = img.load()
#遍历每一个像素块,并处理颜色
width, height = img.size#获取宽度和高度
for x in range(0,width):
    for y in range(0,height):
        rgb = img_array[x,y]#获取一个像素块的rgb
        r = rgb[0]
        g = rgb[1]
        b = rgb[2]
        if b>130 and r<120:#判断规则
            img_array[x, y] = (255, 0, 0)
 
#============3.保存图片============
img.save("2.jpg")

到此这篇关于 Pillow图像颜色处理的具体使用的文章就介绍到这了,更多相关 Pillow图像颜色内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Opencv制作的美颜相机带你领略美颜特效的效果

    基于Opencv制作的美颜相机带你领略美颜特效的效果

    最关于美颜类相机最重要的是第一步:人脸检测,本篇文章中是采用openCV开源库实现,文中给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值
    2021-09-09
  • python 限制函数执行时间,自己实现timeout的实例

    python 限制函数执行时间,自己实现timeout的实例

    今天小编就为大家分享一篇python 限制函数执行时间,自己实现timeout的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python字符串对齐和判断方法汇总

    Python字符串对齐和判断方法汇总

    本教程将详细介绍Python中的字符串对齐方法以及字符串判断方法,这些方法在文本处理、格式化输出和字符串匹配中非常实用,无论你是Python初学者还是想要巩固基础知识的程序员,这篇教程都能帮助你全面理解这些操作,需要的朋友可以参考下
    2025-04-04
  • Python3.7下安装pyqt5的方法步骤(图文)

    Python3.7下安装pyqt5的方法步骤(图文)

    这篇文章主要介绍了Python3.7下安装pyqt5的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • TensorFlow人工智能学习Keras高层接口应用示例

    TensorFlow人工智能学习Keras高层接口应用示例

    这篇文章主要为大家介绍了TensorFlow人工智能学习中Keras高层接口的应用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • python万年历实现代码 含运行结果

    python万年历实现代码 含运行结果

    这篇文章主要为大家详细介绍了python万年历实现代码,含运行结果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • numpy.transpose对三维数组的转置方法

    numpy.transpose对三维数组的转置方法

    下面小编就为大家分享一篇numpy.transpose对三维数组的转置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python学习之读取配置文件

    python学习之读取配置文件

    这篇文章主要介绍了python学习之读取配置文件,文章基于python的相关资料展开对主题的详细介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-04-04
  • Pytho常见的数据可视化库,小白必备

    Pytho常见的数据可视化库,小白必备

    Python作为数据分析的重要语言为数据分析的每个环节都提供了很多库.常见的数据可视化库包括matplotib,seaborm,ggplot,bokeh,pygal,pyecharts等,下面小编一一介绍下,需要的朋友可以参考下
    2021-05-05
  • 解决python2.7用pip安装包时出现错误的问题

    解决python2.7用pip安装包时出现错误的问题

    这篇文章主要介绍了在python2.7用pip安装包时出现错误问题的解决方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01

最新评论