Pillow 提供了颜色处理模块 ImageColor,该模块支持不同格式的颜色,可以修改RGB的颜色,具有一定的参考价值,感兴趣的可以了解一下,编程学习资料点击领取

目录

颜色命名

getrgb()方法

getcolor()

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


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

1

HSL(0,100%,50%)

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

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

getrgb()方法

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

1

PIL.ImageColor.getrgb(color)

使用示例如下:

1

2

3

4

5

6

7

8

9

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(),如下所示:

1

2

3

#使用new()绘制新的图像

im= Image.new("RGB", (200, 200), ImageColor.getrgb("#EEB4B4"))

im.save("C:/Users/Administrator/Desktop/xin.jpg")

显示图片如下:

图1:新建图像

getcolor()

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

1

PIL.ImageColor.getcolor(color, mode)

参数说明如下:

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

使用示例如下:

1

2

3

4

color4=ImageColor.getcolor('#EEA9B8','L')

print(color4)

color5=ImageColor.getcolor('yellow','RGBA')

print(color5)

输出结果:

191

(255, 255, 0, 255)

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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图像颜色处理的具体使用的文章就介绍到这了,感谢关注,为你们准备了编程学习的一套资料,还有相应的代码,视频教程都可以获取,添加Q裙703046414即可获取。

Pillow图像颜色处理的具体使用相关推荐

  1. R语言可视化包ggplot2包通过因子变量设置图像颜色实战

    R语言可视化包ggplot2包通过因子变量设置图像颜色实战 目录 R语言可视化包ggplot2包通过因子变量设置图像颜色实战 <

  2. 5.6 图像颜色映射

    5.6 图像颜色映射 5.6.1 图像灰度映射 vtkImageLuminance负责将一个RGB彩色图像转换为一个单组分的灰度图像.映射公式如下: luminance = 0.3*R + 0.59* ...

  3. 图像颜色迁移《color transfer between images》

    前言 前段时间,在深度学习领域不是有个比较火的方向叫风格迁移的嘛,对于我这种不喜欢深度学习那种不稳定结果的人来说,还是想看看传统图像处理领域有什么类似的技术,发现了一个颜色迁移的算法,很久前的论文了. ...

  4. python 颜色_如何使用python中matplotlib库分析图像颜色

    用代码分析图像可能很困难.你如何使代码"理解"图像的上下文? 通常,使用AI分析图像的第一步 是找到主要颜色.在如何使用python中matplotlib库分析图像颜色中,我们将使 ...

  5. 基于聚类和神经网络的图像颜色提取和评分方案

    概述 图像颜色提取的前端React方案,基于canvas,使用K均值聚类算法提取主要颜色(颜色量子化),用离线训练的神经网络进行评分,附带可视化方案和相关动画. 详细 代码下载:http://www. ...

  6. Android学习笔记之图像颜色处理(ColorMatrix)

    对图像进行颜色方面的处理,通过使用颜色矩阵(ColorMatrix)来实现.从而可以达到很多特效如黑白老照片.泛黄旧照片等等. 1.颜色矩阵(ColorMatrix) 这里有详细的介绍:http:// ...

  7. 【VS开发】图像颜色

    版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/lg1259156776/. 最近被图像颜色整的乱七八糟的,一会儿YUV422,一会儿RGB,一会儿gray... ...

  8. Python Imaging Library: ImageColor Module(图像颜色模块)

    Python Imaging Library: ImageColor Module(图像颜色模块) 图像颜色模块(ImageColor Module)支持的字符串格式如下: 十六进制(Hexadeci ...

  9. 液晶显示器图像颜色发黄,菜单颜色正常

    *液晶显示器图像颜色发黄,菜单颜色正常** 修了一台液晶显示器,背光灯电路或灯管问题,原来是LCD改为LED(此处不多讲).换后正常点亮,但颜色发黄,菜单字符颜色却正常.网上也找了些类似故障的文章看了 ...

最新文章

  1. 皮一皮:这是什么鬼畜产品!
  2. html5新年网页做给父母的,春节回家,要陪父母做这十件小事
  3. python掌握程度怎么判断-Python数据分析路上,温故而知新
  4. 多个Activity与Fragment之间的数据传递
  5. 聊聊技术写作的个人体会
  6. UE4学习-在虚幻编辑器中打开VS的三种方式
  7. MySql允许被远程访问
  8. ssl2648-线段树练习5【线段树】
  9. Effective前端5:减少前端代码耦合
  10. java即时聊天系统毕业_我见过的最牛逼java即时聊天毕业设计项目源码
  11. java 获取键盘点击_Java中获取键盘输入值的三种方法介绍
  12. matlab基于dct的图像压缩编码解码_基于深度学习的视频压缩方法简介
  13. notepad++批量操作笔记(持续更新..)
  14. 私塾在线《研磨设计模式》,精品课程上线特大惊喜
  15. 遗传算法解决TSP问题
  16. Shiro 实战教程(上)
  17. Linux下iwconfig权限,Linux中用iwconfig配置wireless-tools
  18. 元器件及测量基础实验
  19. WPF复制异常问题(OpenClipboard 失败 (异常来自 HRESULT:0x800401D0 (CLIPBRD_E_CANT_OPEN)))
  20. js获取某月的天数以及某天的前一个日期和后一天日期

热门文章

  1. 下载java哪个版本_学习JAVA应该下载ORACLE哪个版本
  2. 安装完linux后找不到dvd文件夹,Ubuntu 9.10安装之硬盘DVD版本的方法
  3. 人工智能 | ShowMeAI资讯日报 #2022.06.05
  4. JSP与Servlet之间传值
  5. vue 调用打印机插件 LODOP 实例详解
  6. zgrep查看前后几行日志
  7. 解决Vue中Object.assign清空数据的报错
  8. 泛微e-cology9 SQL注入漏洞复现(QVD-2023-5012)
  9. 半径为10的球面 matlab,matlab圆环面和球面的组合
  10. Python爬取淘宝商品详情页数据