Pillow图像颜色处理的具体使用_第1页
Pillow图像颜色处理的具体使用_第2页
Pillow图像颜色处理的具体使用_第3页
Pillow图像颜色处理的具体使用_第4页
Pillow图像颜色处理的具体使用_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第Pillow图像颜色处理的具体使用目录颜色命名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色彩模式表示红色,格式如下:

HSL(0,100%,50%)

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

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

getrgb()方法

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

PIL.ImageColor.getrgb(color)

使用示例如下:

fromPILimportImage,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)

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

importPIL.ImageasImage

#============1.打开图片============

img=Image.open('1.jpg')

#============2.处理图片============

#将图片分成小方块

img_array=img.load()

#遍历每一个像素块,并处理颜色

width,height=img.size#获取宽度和高度

forxinrange(0,width):

foryinrange(0,height):

rgb=img_array[x,y]#获取一个像素块的rgb

r=rgb[0]

g=rgb[1]

b=rgb[2]

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论