Pillow圖像顏色處理的具體使用
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圖像顏色內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python Pillow圖像降噪處理顏色處理
- python pillow庫的基礎使用教程
- Pillow使用Image篇的使用
- 基於python使用Pillow做動態圖在圖中生成二維碼以及圖像處理
- 用python編寫一個圖片拼接工具