Python - PIL 屬性


Python Imaging Library (PIL)是一個功能強大的庫,它提供了廣泛的支援,用於開啟、操作和儲存許多不同的影像檔案格式。PIL 提供了各種屬性,允許開發者對影像執行各種操作,例如調整大小、裁剪、旋轉、增強和應用濾鏡。PIL 提供了豐富的功能和屬性,支援影像大小調整、裁剪、旋轉、濾鏡、增強等任務。在本文中,我們將深入探討一些最基本的 PIL 屬性及其演算法和步驟,並比較 Python 語法。

Python 影像庫

  • Python Imaging Library (PIL) 是 Python 生態系統中一個流行的庫,它提供了廣泛的功能來處理影像。它允許開發者開啟、操作和儲存各種影像檔案格式。

  • 使用 PIL,開發者可以使用 Image.open() 函式從檔案中載入影像。載入影像後,可以使用各種屬性和方法訪問和修改它。例如,resize() 屬性允許調整影像大小,同時保持其縱橫比,這對於建立縮圖或為不同用途調整影像尺寸非常有用。

  • PIL 還提供 crop() 屬性,允許根據指定的座標提取影像的特定部分。此屬性對於關注影像中特定區域或刪除不需要的部分非常有用。

  • 可以使用 PIL 中的 rotate() 屬性實現影像旋轉。它允許開發者將影像旋轉指定的角度,這對於調整影像方向或實現創意效果非常重要。

  • 除了這些基本的影像操作屬性之外,PIL 還提供了許多其他功能。這些包括使用 filter() 屬性將濾鏡應用於影像,使用 enhance() 屬性提高影像質量,新增文字或其他圖形疊加層,甚至執行高階影像處理操作,例如直方圖均衡和顏色通道控制。

  • PIL 支援各種影像檔案格式,包括 JPEG、PNG、GIF、BMP 和 TIFF 等常用格式。這種靈活性允許開發者處理來自不同來源的影像,並根據需要將處理後的影像儲存為各種格式。

  • 要使用 PIL 的功能,開發者必須使用合適的包管理器(如 pip)安裝該庫。安裝後,可以使用 import 語句將該庫匯入到 Python 指令碼中。

方法 1:影像大小調整

調整影像大小是影像處理中的一項常見任務。PIL 提供了 resize() 屬性,允許我們將影像調整為所需的寬度和高度,同時保持其縱橫比。以下是使用 PIL 調整影像大小的演算法和分步過程:

演算法

  • 步驟 1 - 使用 PIL 的 Image.open() 函式載入影像。

  • 步驟 2 - 指定調整大小後圖像的所需寬度和高度。

  • 步驟 3 - 在影像物件上呼叫 resize() 屬性,並將寬度和高度作為引數傳遞。

  • 步驟 4 - 使用 save() 屬性儲存調整大小後的影像。

示例

from PIL import Image

# Set the location of the image to open a specific image
image = Image.open('original_image.jpg')

# Specify the desired width and height
width = 800
height = 600

# Modify the image
resized_image = image.resize((width, height))

# Store the resized image
resized_image.save('resized_image.jpg')

輸出

方法 2:影像裁剪

裁剪允許我們提取影像的特定部分。PIL 提供了 crop() 屬性,允許我們根據指定的座標裁剪影像。讓我們研究一下使用 PIL 裁剪影像的演算法和步驟:

演算法

  • 步驟 1 - 使用 PIL 的 Image.open() 函式載入影像。

  • 步驟 2 - 指定裁剪區域的座標(左、上、右、下)。

  • 步驟 3 - 在影像物件上呼叫 crop() 屬性,並將座標作為引數傳遞。

  • 步驟 4 - 使用 save() 屬性儲存裁剪後的影像。

程式

from PIL import Image

# Load the image
image = Image.open('original_image.jpg')

# Specify the cropping coordinates
left = 100
upper = 100
right = 400
lower = 400

# Crop the image
cropped_image = image.crop((left, upper, right, lower))

# Store the resultant image
cropped_image.save('cropped_image.jpg')

輸出

方法 3

旋轉影像是在影像處理中另一個常見的操作。PIL 提供了 rotate() 屬性,允許我們將影像旋轉指定的角度。讓我們看一下使用 PIL 旋轉影像的演算法和步驟:

演算法

  • 步驟 1 - 使用 PIL 的 Image.open() 函式載入影像。

  • 步驟 2 - 指定所需的旋轉角度。

  • 步驟 3 - 在影像物件上呼叫 rotate() 屬性,並將角度作為引數傳遞。

  • 步驟 4 - 使用 save() 屬性儲存旋轉後的影像。

示例

from PIL import Image

# Set the path of an image that needs to be opened
image = Image.open('original_image.jpg')

# Step 2: Specify the rotation angle
angle = 90

# Step 3: Rotate the image
rotated_image = image.rotate(angle)

# Step 4: Save the resultant image
rotated_image.save('rotated_image.jpg')

輸出

結論

在本文中,我們探討了 PIL 提供的三個基本屬性:影像大小調整、裁剪和旋轉。我們介紹了演算法、分步過程以及每種方法的 Python 語法比較。這些屬性與 PIL 提供的許多其他屬性結合使用,使開發人員能夠有效地執行各種影像處理任務。透過利用 PIL 的功能,您可以使用強大的影像處理功能來增強您的 Python 專案。

更新於:2023-09-01

瀏覽量:277

開啟您的職業生涯

完成課程獲得認證

開始
廣告