Python 中的 Pillow 包
我們可以使用 Python 中的不同庫來讀取、處理和顯示影象。在 2011 年棄用之前,我們擁有標準影象處理庫 PIL(Python Imaging Library)包。
過了一段時間,引入了一個 Pillow 專案,它是原始 PIL 包的一個分支。該庫包括對所有新影象格式的支援,並新增了新的解碼器來處理這些新格式。
我們通過執行 pip install pillow
命令來安裝這個庫。
本教程將演示 Python 中 Pillow 庫的基礎知識。
在 Python 中使用 Pillow 包讀取和顯示影象
我們可以使用 open()
函式開啟影象並將其儲存在 PIL 類物件中。我們指定檔案的路徑並將其與 PIL.Image
物件一起使用。
使用 show()
函式,我們可以在 PIL.Image
物件中顯示影象。在此之後,影象將儲存在緩衝區中並轉換為 PNG 格式以顯示它。
請參閱下面的程式碼。
from PIL import Image
i = Image.open("image.png")
i.show()
輸出:
在上面的示例中,我們使用 open()
函式讀取影象並使用 show()
函式顯示它。
Python 中使用 Pillow 包獲取圖片的屬性
我們還可以使用 PIL.Image
物件獲取不同的影象屬性。
mode 屬性說明由畫素確定的載入影象的深度和型別。模式可以是 L(灰度)、P(對映到其他模式)、RGB 等。
例子:
from PIL import Image
i = Image.open("image.png")
print(i.mode)
輸出:
RGBA
我們可以使用 convert()
函式將影象轉換為不同的模式並指定其中的模式。
我們還可以分別使用 size
和 format
屬性找到影象的大小和格式。
請參閱下面的程式碼。
from PIL import Image
i = Image.open("image.png")
print(i.size, i.format)
輸出:
(640, 640) PNG
在 Python 中使用 Pillow 包編輯和處理影象
我們還可以使用 Pillow 包處理影象並對其進行編輯。它有一個名為 PIL.ImageFilter
的模組,用於儲存不同的過濾器。
我們可以使用 filter()
函式將它們應用於影象,並在其中指定過濾器。
例子:
from PIL import Image, ImageFilter
i = Image.open("image.png")
edited = i.filter(ImageFilter.BLUR)
edited.show()
輸出:
在上面的示例中,我們使用 filter()
函式中的 ImageFilter.BLUR
對影象進行模糊處理。
此外,這個包的 crop()
函式可以將影象裁剪到給定的尺寸。rotate()
函式可以將影象旋轉給定的角度。
請參閱下面的程式碼。
from PIL import Image, ImageFilter
i = Image.open("image.png")
t = i.crop((100, 100, 350, 350))
edited = t.rotate(90)
edited.show()
輸出:
我們提到了裁剪影象的尺寸並將其旋轉給定角度。
此外,save()
函式可以儲存編輯後的影象。
我們在函式中提到了影象的路徑和檔名。我們還應該在檔名中指定影象的格式。
例子:
from PIL import Image, ImageFilter
i = Image.open("image.png")
t = i.crop((100, 100, 350, 350))
edited = t.rotate(90)
edited.save("edited.png")
まとめ
最後,我們討論了 Pillow 包的不同用途、它的歷史、它是如何在 PIL 包之後出現的,以及在讀取和處理影象中的一些主要用途。
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn