一、 基本概念
-
通道
每張圖片由一個或多個通道構成
RGB圖像爲例,每張圖片由3個通道構成,即R通道,G通道,B通道。對於灰度圖像,則只有一個通道。
獲取圖像的通道數量和名稱,可以由方法PIL.Image.getbands()獲取,此方法返回一個字符串元組,包含每一個通道的名稱 - 模式
圖像的模式定義了圖像的類型和像素的位寬。當前支持如下模式:
1:1位像素,表示黑和白,但是存儲的時候每個像素存儲爲8bit。
L:8位像素,表示黑和白。
P:8位像素,使用調色板映射到其他模式。
RGB:3x8位像素,爲真彩色。
RGBA:4x8位像素,有透明通道的真彩色。
CMYK:4x8位像素,顏色分離。
YCbCr:3x8位像素,彩色視頻格式。
I:32位整型像素。黑白圖像
F:32位浮點型像素。黑白圖像
PIL也支持一些特殊的模式,包括RGBX(有padding的真彩色)和RGBa(有自左乘alpha的真彩色)。
可以通過mode熟悉讀取圖像的模式
-
尺寸
通過size屬性獲取水平和垂直方向上的像素數 - 座標系統
PIL使用笛卡爾像素座標系統,座標(0,0)位於左上角。注意:座標值表示像素的角;位於座標(0,0)處的像素的中心實際上位於(0.5,0.5)。
座標經常用於二元組(x,y)。長方形則表示爲四元組,前面是左上角座標。例如,一個覆蓋800x600的像素圖像的長方形表示爲(0,0,800,600)。 - 調色板
調色板模式 ("P")使用一個顏色調色板爲每個像素定義具體的顏色值 - 信息
使用info屬性可以爲一張圖片添加一些輔助信息。這個是字典對象。加載和保存圖像文件時,多少信息需要處理取決於文件格式
二、 基本方法和屬性使用
##打開圖像,返回PIL.Image對象
from PIL import Image as Image
image = Image.open(‘image.gpeg’)
##顯示圖像模式,模式概念見第一節基本概念
image.mode
##轉換模式
image.convert(‘1’)
##將一個圖像對象轉爲縮略圖,圖像對象將之間變爲縮略圖,本地圖像不變。
image.thumbnail((680,680))
##調整圖像像素大小,其他參數可以指定過濾器
image.resize((1000,2000))
##旋轉圖像區域,旋轉角度可以爲Image.ROTATE_90,Image.ROTATE_180,Image.ROTATE_270
image.transpose(Image.ROTATE_180)
##旋轉圖像,逆時針表旋轉角度
image.rotate(45)
##截取圖像中的像素區域,拷貝圖像
cropZone = image.crop((100,100,1000,1000))
cropZone = image.copy()
image.paste(cropZone,(100,100,1000,1000))
##獲取、更改某個像素位置的值
image.getpixel((100,100))
image.putpixel((100,100),(0,0,0))