Python圖像處理庫PIL/Pillow入門指南
核心要點
在之前的關於Python技巧的文章中,我提到過Python是一種能夠激髮用戶熱愛的語言。
原因之一是這種語言提供了大量的節省時間的庫。一個很好的例子是Python圖像處理庫(PIL),本文將重點介紹它。
PIL能做什麼
PIL是一個免費的庫,它為Python解釋器添加了圖像處理功能,支持多種圖像文件格式,例如PPM、PNG、JPEG、GIF、TIFF和BMP。
PIL提供了許多標準的圖像處理/操作程序,例如:
PIL和Pillow
PIL的一個問題是,其最新的版本1.1.7發佈於2009年,並且只支持Python 1.5.2-2.7。儘管PIL網站承諾即將推出Python 3.x的版本,但其最後一次提交是在2011年,並且開發似乎已經停止。
幸運的是,對於Python 3.x用戶來說,並非一切都已結束。一個名為Pillow的項目已經fork了PIL的代碼庫並添加了Python 3.x的支持。鑑於大多數讀者可能都在使用Python 3.x,因此本文將重點介紹Pillow更新。
安裝Pillow
由於Pillow支持從Python 2.4到最新版本的Python,我將只關注Pillow的安裝,而不是舊版本的PIL。
在Mac上使用Python
我目前正在Mac OS X Yosemite 10.10.5上編寫本教程,因此將描述如何在Mac OS X機器上安裝Pillow。但是,不用擔心,我將在本節末尾提供一個鏈接,其中描述瞭如何在其他操作系統上安裝Pillow。
我只想在這裡指出,Mac OS X預裝了Python。但是,該版本很可能早於3.x。
例如,在我的機器上,當我運行$ python --version
終端命令時,我得到的是Python 2.7.10。
Python和pip
安裝Pillow的一種非常簡單的方法是通過pip。
如果您的機器上沒有安裝pip,只需在終端中輸入以下命令即可完成:
<code class="language-bash">$ sudo easy_install pip</code>
現在,要安裝Pillow,只需在終端中輸入以下內容:
<code class="language-bash">$ sudo pip install pillow</code>
這很容易,不是嗎?
正如我承諾的那樣,有關在其他操作系統上安裝Pillow的信息,您可以在這裡找到相關說明。
一些例子
在本節中,我將演示一些我們可以使用PIL完成的簡單操作。
我將對以下圖像執行這些測試:
如果您想按照這些示例操作,請下載此圖像。
讀取圖像
這是圖像處理任務中最基本的操作,因為要處理圖像,必須先讀取它。使用PIL,這可以很容易地完成,如下所示:
<code class="language-python">from PIL import Image img = Image.open('brick-house.png')</code>
請注意,這裡的img是一個PIL圖像對象,由open()函數創建,該函數是PIL Image模塊的一部分。
您還可以讀取已打開的文件、字符串或tar存檔。
將圖像轉換為灰度、顯示並保存
文件brick-house.png是一個彩色圖像。要將其轉換為灰度、顯示它,然後保存新的灰度圖像,您可以簡單地執行以下操作:
<code class="language-python">from PIL import Image img = Image.open('brick-house.png').convert('L') img.show() img.save('brick-house-gs','png')</code>
請注意,我們使用了三個主要函數來執行此操作:convert()、show()和save()。由於我們要轉換為灰度圖像,因此在convert()中使用了參數'L'。
以下是生成的圖像:
轉換為其他圖像類型
我們正在處理的圖像是png類型。假設您想將其轉換為其他圖像類型,例如jpg。可以使用save()函數(如上小節中用於保存結果(將輸出寫入磁盤)的函數)來執行此操作:
<code class="language-python">from PIL import Image img = Image.open('brick-house.png') img.save('brick-image','jpeg')</code>
調整圖像大小
我們原始圖像的大小(尺寸)是440 x 600像素。如果我們想調整它的大小,並使其大小為256 x 256像素,則可以執行以下操作:
<code class="language-python">from PIL import Image img = Image.open('brick-house.png') new_img = img.resize((256,256)) new_img.save('brick-house-256x256','png')</code>
這會生成一個新的正方形圖像:
如您所見,這會將圖像壓縮到所需的尺寸,而不是裁剪它,這可能不是您想要的。當然,您也可以在保持適當縱橫比的同時裁剪圖像。
總結
這個快速入門僅旨在介紹PIL的表面,並演示如何通過PIL庫在Python中輕鬆完成一些複雜的圖像處理任務。
您可以使用此庫執行的許多其他操作在全面的Pillow文檔中進行了描述,您可以在其中閱讀有關上述問題的更多詳細信息以及方便的教程。
我希望這個介紹能激勵您嘗試使用Python進行圖像處理。玩得開心!
Python圖像處理庫(PIL)常見問題解答(FAQ)
要安裝Python圖像處理庫(PIL),您需要使用pip,它是Python的包管理器。打開您的終端或命令提示符並輸入以下命令:pip install pillow
。 'pillow'庫是PIL的一個分支,並且正在積極維護,因此建議使用'pillow'而不是PIL。如果您安裝了多個版本的Python,則可能需要對Python 3使用pip3 install pillow
。
要使用PIL打開和顯示圖像,您需要使用Image.open()
函數打開圖像,並使用Image.show()
函數顯示圖像。這是一個示例:
<code class="language-bash">$ sudo easy_install pip</code>
在此代碼中,'image.jpg'是您的圖像文件的名稱。確保圖像文件與您的Python腳本位於同一目錄中,或者提供圖像文件的完整路徑。
要使用PIL調整圖像大小,您可以使用Image.resize()
函數。此函數接受一個元組,該元組指定以像素為單位的新大小。這是一個示例:
<code class="language-bash">$ sudo pip install pillow</code>
在此代碼中,圖像大小調整為800×800像素。
(後續FAQ答案類似,略去,保持文章大意不變)
以上是使用Python成像庫操縱圖像的詳細內容。更多資訊請關注PHP中文網其他相關文章!