Pillow圖像顏色處理的具體使用
Pillow 提供了顏色處理模塊 ImageColor,該模塊支持不同格式的顏色,比如 RGB 格式的顏色三元組、十六進(jìn)制的顏色名稱(#ff0000)以及顏色英文單詞("red")。同時(shí),它還可以將 CSS(層疊樣式表,用來修飾網(wǎng)頁)風(fēng)格的顏色轉(zhuǎn)換為 RGB 格式。
注意,在 ImageColor 模塊對(duì)顏色的大小并不敏感,比如 "Red" 也可以寫為 " red"。
顏色命名
ImageColor 支持多種顏色模式的的命名(即使用固定的格式對(duì)顏值進(jìn)行表示),比如我們熟知的 RGB 色彩模式,除此之外,還有 HSL (色調(diào)-飽和度-明度)、HSB (又稱 HSV,色調(diào)-飽和度-亮度)色彩模式。下面對(duì) HSL 做簡(jiǎn)單介紹:
- H:即 Hue 色調(diào),取值范圍 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%)
此時(shí)的顏色為“純紅色”,等同于 RGB (255,0,0)。如果想了解有關(guān) HSL/HSB 的更多知識(shí),點(diǎn)擊鏈接前往。
ImageColor 模塊比較簡(jiǎn)單,只提供了兩個(gè)常用方法,分別是 getrgb() 和 getcolor() 函數(shù)。
getrgb()方法
顧名思義,該函數(shù)用來得到顏色的 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)
輸出結(jié)果如下:
(0, 0, 255)
(220, 220, 220)
(255, 0, 0)
通過 new() 方法可以新建圖像,此時(shí)也可以使用 ImageColor.getrgb(),如下所示:
#使用new()繪制新的圖像 im= Image.new("RGB", (200, 200), ImageColor.getrgb("#EEB4B4")) im.save("C:/Users/Administrator/Desktop/xin.jpg")
顯示圖片如下:
圖1:新建圖像
getcolor()
該方法與 getrgb() 類似,同樣用來獲取顏色值,不過它多了一個(gè)mode參數(shù),因此該函數(shù)可以獲取指定色彩模式的顏色值。語法格式如下:
PIL.ImageColor.getcolor(color, mode)
參數(shù)說明如下:
- color:一個(gè)顏色名稱,字符串格式,可以是顏色的英文單詞,或者十六進(jìn)制顏色名。如果是不支持的顏色,會(huì)報(bào) ValueError 錯(cuò)誤;
- mode:指定色彩模式,如果是不支持的模式,會(huì)報(bào) KeyError 錯(cuò)誤。
使用示例如下:
color4=ImageColor.getcolor('#EEA9B8','L') print(color4) color5=ImageColor.getcolor('yellow','RGBA') print(color5)
輸出結(jié)果:
191
(255, 255, 0, 255)
示例——修改證件照背景色
import PIL.Image as Image #============1.打開圖片============ img = Image.open('1.jpg') #============2.處理圖片============ #將圖片分成小方塊 img_array = img.load() #遍歷每一個(gè)像素塊,并處理顏色 width, height = img.size#獲取寬度和高度 for x in range(0,width): for y in range(0,height): rgb = img_array[x,y]#獲取一個(gè)像素塊的rgb r = rgb[0] g = rgb[1] b = rgb[2] if b>130 and r<120:#判斷規(guī)則 img_array[x, y] = (255, 0, 0) #============3.保存圖片============ img.save("2.jpg")
到此這篇關(guān)于 Pillow圖像顏色處理的具體使用的文章就介紹到這了,更多相關(guān) Pillow圖像顏色內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。