1. 程式人生 > 其它 >python心得體會200字_Python零基礎入門學習23:常用第三方庫之影象處理庫Pillow

python心得體會200字_Python零基礎入門學習23:常用第三方庫之影象處理庫Pillow

技術標籤:python心得體會200字

:本文所有程式碼均經過Python 3.7實際執行檢驗,保證其嚴謹性。

本文約2000字,閱讀時間約為4分鐘

586c5274b12dfbc71295657a5bcf860f.png

PIL

Pillow庫的概述

Pillow庫是Python最好的影象處理庫,可能是使用頻率最高的影象處理庫。Python 2.X時,這個庫名為PIL(即Python Image Library)。後來Python升級到3.X,PIL改名為Pillow。

Pillow功能非常強大,可以對影象做各種處理,包括縮放裁剪、旋轉、濾鏡、文字、調色盤等等。

Pillow庫的安裝

Pillow庫是Python的第三方庫,其安裝方法依然是在命令列介面輸入conda install 或 pip install 。

關於第三方庫的安裝,更多詳情請移步至:Python零基礎入門學習20:常用第三方庫之PyInstaller庫

Pillow庫的操作

以下所有程式碼預設已有如下import操作:

from PIL import Image, ImageFilter
開啟和瀏覽影象

開啟影象

from PIL import Imageim = Image.open()  # 如果是和源程式一個資料夾,直接輸入影象名的字串,比如"1.jpg"。

Pillow庫能自動根據檔案內容確定其格式,是jpg還是png等。

顯示或儲存影象
# 延續上面程式碼。im.show()  # 影象顯示。im是上面程式碼中開啟影象後形成的物件。im.save()  # 影象儲存。
.thumbnail方法——縮略瀏覽圖片
# 延續上面程式碼。im.thumbnail(size, Image.ANTIALIAS)

第一個引數size是一個元組,比如(200, 400)表示寬200,高400的畫素,為指定縮圖的尺寸大小。

第二個引數Image.ANTIALIAS是在記憶體中讓縮略過程中對影象進行處理,讓影象看起來更平滑,而不是出現鋸齒等,處理後圖片不會被拉伸。

PIL影象操作:模糊效果

.filter(ImageFilter.BLUR)——用於對影象進行模糊效果操作。

from PIL import Image, ImageFilter# 開啟一個jpg影象檔案,注意是當前路徑:im = Image.open()# 應用模糊濾鏡:im2 = im.filter(ImageFilter.BLUR)im2.save(, 'jpeg')
PIL影象操作:新增文字
from PIL import Image, ImageDraw, ImageFont# 開啟程式目錄下的圖片cat。img = Image.open()# 設定待新增文字的大小為200, 字型為宋體。font = ImageFont.truetype('simsun.ttc', 100)# 在img上建立可繪圖物件draw。draw = ImageDraw.Draw(img)# 新增紅色文字。draw.text((100, 10), , (255, 0, 0), font=font)# (100, 10)表示一個座標,字型繪製的地方,第一個字左上角的位置。# 儲存照片。img.save(, 'jpeg')
一個小程式:PIL生成驗證碼
from PIL import Image, ImageDraw, ImageFont, ImageFilterimport random# 隨機字母:def rndChar():    return chr(random.randint(65, 90))# 隨機顏色1:def rndColor1():    return (random.randint(64, 255),             random.randint(64, 255),             random.randint(64, 255))# 隨機顏色2:def rndColor2():    return (random.randint(32, 255),             random.randint(32, 255),             random.randint(32, 255))# 寬和高: 240 * 60。width = 60 * 4height = 60image = Image.new('RGB', (width, height), (255, 255, 255))# 建立Font物件。font = ImageFont.truetype('simsun.ttc', 36)# 建立Draw物件。draw = ImageDraw.Draw(image)# 填充每個畫素。for x in range(width):    for y in range(height):        draw.point((x, y), fill=rndColor1())# 輸出文字:for t in range(4):    draw.text((60 * t + 10, 10), rndChar(), font=font, fill=rndColor2())# 模糊:#image = image.filter(ImageFilter.BLUR)image.save('code.jpg', 'jpeg')

最後輸出的圖片code.jpg如下:

36fbbfc197c660cb5e742d40cbed3071.png

PIL生成驗證碼

To be continued.