1。Pillow庫介紹

Pillow是Python裡的影象處理庫,提供了了廣泛的檔案格式支援,強大的影象處理能力,主要包括影象儲存、影象顯示、格式轉換以及基本的影象處理操作等;

安裝

pip

install

pillow

2。Image類

PIL中最重要的類是Image類,使用前需要先從PIL中匯入Image類,要從檔案載入影象可以使用Image類中的open()函式:

Image。open(fp, mode =‘r’ )

,如果載入成功則會返回一個Image物件,fp是圖片路徑,mode是模式。影象的物件屬性有filename原始檔的檔名或路徑、format圖片的格式、size圖片大小,以畫素為單位、mode圖片模式、width影象寬度、height影象高度、palette調色盤表等;

save(fp, format=None, **params)

:儲存影象到給定的檔名下,如果沒有指定格式則可以使用副檔名來確定要使用的格式,無返回值。fp是檔名或路徑,format可選的格式覆蓋;

thumbnail(size, resample=3)

:指定圖片的畫素,size是大小,resample是重取樣濾波器,可以是

Image。NEAREST

Image。BILINEAR

Image。BICUBIC

或者

Image。LANCZOS

,預設為

Image。BICUBIC

rotate(angle, resample=0, expand=0, ceter=None, translate=None)

:旋轉圖片的方向,返回旋轉後的影象副本,一個Image物件 。angle角度,逆時針旋轉、resample重取樣濾波器、expand是否展開、center旋轉中心、translate旋轉後;

filter(filter)

:給圖片新增濾鏡,返回一個Image物件,filter是過濾器;

transpose(method)

:旋轉或翻轉影象,返回旋轉或翻轉後的影象副本,一個Image物件。method可以是

Image。FLIP_LEFT_RIGHT

Image。FLIP_TOP_BOTTOM

Image。ROTATE_90

Image。ROTATE_180

Image。ROTATE_270

Image。TRANSPOSE

或者

Image。TRANSVERSE

show()

:顯示這個影象,此方法主要用於除錯目的;

# 獲取圖片的基本資訊

from PIL import Image

im = Image。open(‘。/image。jpg’)

# 獲取圖片的格式,大小,以及模式

print(im。format, im。size, im。mode)

# 指定圖片的畫素

im。thumbnail((128,128))

im。save(‘。/image_128_128。jpg’)

# 旋轉圖片的方向

dest_im = im。rotate(90)

dest_im。save(‘。/image_rotate。jpg’)

# 給圖片新增濾鏡

dest_im = im。filter(ImageFilter。GaussianBlur)

dest_im。show()

# 圖片反轉

dest_im = im。transpose(Image。FLIP_LEFT_RIGHT) # 左右反轉

dest_im = im。transpose(Image。FLIP_TOP_BOTTOM) # 上下反轉

dest_im。show()

# 圖片上寫文字

image = Image。open(‘image。jpg’)

img_draw = ImageDraw。Draw(image)

img_draw。text((770,250),‘hello world’,fill=‘green’) # 放上文字資訊到影象上

image。show()

3。ImageDraw模組

ImageDraw模組為Image物件提供簡單的2D圖形,可以使用此模組建立新影象,註釋或潤飾現有影象,以及動態生成圖形以供Web使用;

ImageDraw。Draw(im,mode=None)

:建立可用於在給定影象中繪製的物件,im要繪製的影象、mode 用於顏色值的可選模式;

ImageDraw。text(xy,text,fill=None,font=None,anchor=None,spacing=0,align =“left”,direction = None,features=None,language=None)

:在給定位置繪製字串,xy文字的左上角、text要繪製的文字、fill用於文字的顏色、direction文字的方向、language文字的語言;

ImageDraw。point(xy,fill=None)

:在給定座標處繪製點,xy元組的序列或類似的數值、fill用於點的顏色; 更多可以檢視網址:

https://

pillow。readthedocs。io/e

n/latest/reference/index。html

4。批次將圖片的大小設定為指定大小

import os

from PIL import Image

# 源目錄

project_dir = os。path。dirname(os。path。abspath(__file__))

input = os。path。join(project_dir, ‘src’)

# 輸出目錄

output = os。path。join(project_dir, ‘dest’)

def modify():

# 切換目錄

os。chdir(input)

# 遍歷目錄下所有的檔案

for image_name in os。listdir(os。getcwd()):

print(image_name)

im = Image。open(os。path。join(input, image_name))

im。thumbnail((128, 128))

im。save(os。path。join(output, image_name))

if __name__ == ‘__main__’:

modify()

參考:

https://www。

9xkd。com/user/plan-view

。html?id=1113747022