iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
自我挑戰組

全端網頁-入職三十天學習筆記系列 第 27

【全端網頁開發】Day27-Pillow: Python Imaging Library入門

  • 分享至 

  • xImage
  •  

前言

最近開始主要專注在專案的開發,
但還是有學習一下當初提到未來會使用的技能,
也就是Pillow,主要是用在圖像處理,
在網頁開發上也是常常需要應用到的技能。

Pillow: Python Imaging Library

在現代軟體開發中,處理圖像和圖形是一個常見的任務,
無論是在網頁應用、數據科學領域還是其他應用中。
其中,Pillow(Python Imaging Library,或稱PIL)是一個強大的圖像處理庫,
它提供了各種圖像處理功能和工具。
本篇文章將深入探討Pillow的功能和使用,以及如何在Python應用中有效地處理圖像。

什麼是Pillow?

Pillow是Python Imaging Library的一個分支,它是Python中最受歡迎的圖像處理庫之一。
Pillow允許在Python中輕鬆讀取、處理和生成圖像。
它提供了各種圖像處理功能,包括調整大小、旋轉、過濾、轉換、合併和拆分圖像,以及許多其他操作。
Pillow支持多種圖像格式,包括JPEG、PNG、GIF、BMP等。
不僅如此,它還可以處理不同色彩模型的圖像,如RGB、RGBA、CMYK等。

Pillow的主要目標是使圖像處理變得簡單且可擴展
無論是處理用於網頁應用的圖像、處理數據科學實驗中的圖形,
還是進行其他圖像相關的工作,Pillow都是一個強大且易於使用的工具。

安裝Pillow

要開始使用Pillow,首先需要安裝它。
可以使用Python的包管理器pip來安裝Pillow。在命令提示字元中執行以下命令:

pip install Pillow

安裝完成後,就可以在Python代碼中引入Pillow模組,開始使用它的功能。

from PIL import Image

讀取和顯示圖像

Pillow使讀取和顯示圖像變得非常簡單。
可以使用Image.open()函數來讀取圖像,然後使用show()方法來顯示圖像。以下是一個簡單的示例:

from PIL import Image

# 讀取圖像
img = Image.open("example.jpg")

# 顯示圖像
img.show()

這將打開系統的圖像查看器並顯示指定的圖像。
可以輕鬆地讀取不同格式的圖像,只需提供相應的文件路徑。

圖像的基本操作

Pillow提供了多種圖像處理操作,以下是一些常見的基本操作:

1. 調整大小
可以使用resize()方法調整圖像的大小,指定新的寬度和高度。例如,將圖像調整為200x200像素:

img = img.resize((200, 200))

2. 旋轉
使用rotate()方法可以旋轉圖像。例如,將圖像逆時針旋轉90度:

img = img.rotate(90)

3. 鏡像

mirrored_img = img.transpose(Image.FLIP_LEFT_RIGHT)

4. 轉換模式
Pillow支持不同的色彩模型,如RGBA、CMYK、灰度等。
可以使用convert()方法來轉換圖像的色彩模型。例如,將一個RGB圖像轉換為灰度圖像:

gray_img = img.convert('L')

5. 剪裁
剪裁圖像以獲得感興趣的區域,可以使用crop()方法。指定左上角和右下角的座標來剪裁圖像。例如,剪裁圖像的區域為(100, 100)到(300, 300):

cropped_img = img.crop((100, 100, 300, 300))

這僅是Pillow提供的許多圖像處理功能的示例。可以組合這些操作,以實現更複雜的圖像處理需求。

圖像濾鏡和增強

Pillow還提供了多種內置的圖像濾鏡和增強工具,以改進圖像的質量和外觀。以下是一些示例:

1. 銳化圖像
使用filter()方法可以應用不同的濾鏡。例如,要使圖像更銳化,可以使用ImageFilter.SHARPEN:

from PIL import ImageFilter

sharpened_img = img.filter(ImageFilter.SHARPEN)

2. 增加亮度
使用enhance()方法可以增加圖像的亮度。例如,將圖像的亮度增加50%:

from PIL import ImageEnhance

enhancer = ImageEnhance.Brightness(img)
brightened_img = enhancer.enhance(1.5)

3. 模糊
使用ImageFilter.BLUR濾鏡可以使圖像模糊:

blurred_img = img.filter(ImageFilter.BLUR)

Pillow提供了更多的濾鏡和增強選項,可以根據需要應用在圖像上。

保存圖像

完成圖像處理後,通常需要保存處理後的圖像。
Pillow允許將圖像保存為多種不同的格式。
使用save()方法,可以指定保存的文件名和格式。例如,將圖像保存為PNG格式:

img.save("output.png", "PNG")

Pillow將自動根據文件擴展名選擇適當的格式。
也可以使用額外的選項來控制保存的質量、壓縮等。

縮略圖

生成縮略圖是一個常見的任務,特別是當需要在網頁上顯示圖像時。
Pillow使生成縮略圖變得非常容易。
使用thumbnail()方法,可以生成指定大小的縮略圖,並保持圖像的原始比例。
例如,生成一個寬度為100像素的縮略圖:

img.thumbnail((100, 100))

結語

Pillow是一個功能豐富的圖像處理庫,提供了豐富的功能和工具,能夠在Python應用程序中輕鬆處理圖像。
無論是開發網頁應用、處理數據科學中的圖形還是進行其他圖像相關的工作,
Pillow都是一個強大且易於使用的工具。
希望能幫助入門Pillow,並在圖像處理領域取得更多的成就。


上一篇
【全端網頁開發】Day26-API命名:提升開發者體驗和系統可讀性的關鍵
下一篇
【全端網頁開發】Day28-為何"前後端分離"專案需要清晰的結構圖?
系列文
全端網頁-入職三十天學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言