纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

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

  2021-11-23 我要评论
想了解Pillow图像颜色处理的具体使用的相关内容吗在本文为您仔细讲解Pillow图像颜色的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Pillow图像颜色,pillow修改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")

相关文章

猜您喜欢

  • JavaScript函数this指向 JavaScript函数this指向问题详解

    想了解JavaScript函数this指向问题详解的相关内容吗bear*6在本文为您仔细讲解JavaScript函数this指向的相关知识和一些Code实例欢迎阅读和指正我们先划重点:JavaScript函数,JavaScriptthis指向下面大家一起来学习吧..
  • Java聊天室功能 Java基于NIO实现聊天室功能

    想了解Java基于NIO实现聊天室功能的相关内容吗林夕$相心在本文为您仔细讲解Java聊天室功能的相关知识和一些Code实例欢迎阅读和指正我们先划重点:java,聊天室下面大家一起来学习吧..

网友评论

Copyright 2020 www.fresh-weather.com 【世纪下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式