使用 Python Pillow 處理影像資料型別


Python Pillow 是一個用於處理 Python 中影像資料的有效庫。使用者可以使用它來開啟、編輯和儲存各種格式的影像。您可以使用 Pillow 開啟影像,訪問其屬性(如大小和格式),然後顯示或儲存修改後的版本。您可以調整大小、旋轉影像、裁剪、新增濾鏡和增強顏色。Pillow 支援各種影像格式,使其成為影像處理應用的理想選擇。無論您需要進行簡單的影像調整還是複雜的轉換,Pillow 都提供使用者友好的介面和全面的文件,以滿足您所有的影像處理需求。

安裝命令

在使用 Python Pillow 庫之前,您需要在您的計算機系統上安裝它。可以使用 Python 的包管理器 pip 來執行此操作,執行以下命令:

pip install Pillow

Pillow 庫的功能

  • 影像開啟和儲存:Pillow 可以開啟各種格式的影像,包括 JPEG、PNG、GIF 和 BMP,並可以將影像儲存為多種格式。

  • 影像操作:它提供各種影像操作功能,包括裁剪、翻轉、旋轉、調整大小和更改顏色模式。

  • 影像濾鏡:Pillow 支援各種影像濾鏡,包括邊緣增強、模糊和銳化。

  • 影像增強:它允許增強視覺屬性,如銳度、對比度、色彩平衡和亮度。

  • 影像繪製:Pillow 支援在影像上繪製,包括新增文字、線條、形狀和水印。

  • 影像元資料:可以訪問和編輯影像元資料,如 Exif 資料。

  • 影像格式:Pillow 支援各種影像格式,確保與不同檔案型別的互操作性。

  • 影像資料分析:Pillow 允許使用者訪問影像的畫素資料,以便分析或修改它。

  • 影像變換:Pillow 支援仿射變換、透視變換和其他幾何變換。

  • 顏色操作:它提供顏色空間的操作和轉換。

  • 影像序列:Pillow 可以使用動畫影像作為影像序列,例如 GIF。

基本方法

安裝 Pillow:確保您的 Python 環境已安裝 Pillow。如果您尚未安裝,請使用以下程式碼安裝它:

pip install Pillow

匯入 Pillow:從 Pillow 匯入處理影像所需的模組。

from PIL import Image, ImageFilter, ImageEnhance, ImageDraw

開啟影像:使用 Image.open() 函式開啟影像檔案。

image = Image.open('path/to/image.jpg')

顯示影像(可選):使用 show() 函式顯示開啟的影像。

image.show()

訪問影像屬性:您可以訪問影像的各種屬性,包括其大小和格式。

width, height = image.size
image_format = image.format

執行影像操作:使用 Pillow 的各種函式來修改影像以執行影像操作。例如,影像縮放、旋轉、濾鏡和顏色增強。

new_width, new_height = 200, 150
resized_image = image.resize((new_width, new_height))

angle = 45
rotated_image = image.rotate(angle)

blurred_image = image.filter(ImageFilter.BLUR)

enhancer = ImageEnhance.Color(image)
enhanced_image = enhancer.enhance(1.5)

儲存影像:在編輯影像後,使用 save() 函式將其儲存到新檔案。

resized_image.save('path/to/resized_image.jpg')

影像繪製(可選):使用 Pillow 的 ImageDraw 模組在影像上新增繪製。

draw = ImageDraw.Draw(image)
draw.text((50, 50), "Hello, Pillow!", fill=(255, 0, 0))

關閉影像(可選):處理後,最好關閉影像。

resized_image.save('path/to/resized_image.jpg')

影像物件的屬性

  • size() 方法

  • mode() 方法

  • format() 方法

  • filename() 方法

  • width() 方法

  • height() 方法

size() 方法

演算法

  • 接收影像物件作為輸入。

  • 使用影像物件的“size”屬性獲取影像的寬度和高度(以畫素為單位)。

  • 將寬度和高度作為元組返回。

示例

from PIL import Image

image985 = Image.open('path/to/imageToUpload.jpg')

width, height = get_image_size(image985)

print(f"Image width: {width} pixels")
print(f"Image height: {height} pixels")

輸出

Image width: 800 pixels
Image height: 600 pixels

mode() 方法

演算法

  • 接收影像物件作為輸入。

  • 使用影像物件的“mode”屬性獲取影像的顏色模式。

  • 將顏色模式作為字串返回。

示例

from PIL import Image

image678 = Image.open('path/to/imageToUpload.jpg')

color_mode = get_image_mode(image678)
print(f"Image color mode: {color_mode}")

輸出

Image color mode: RGB

format() 方法

演算法

  • 接收影像物件作為輸入。

  • 使用影像物件的`format`屬性獲取影像的格式。

  • 將格式作為字串返回。

示例

from PIL import Image

image66 = Image.open('path/to/imageToUpload.jpg')

imageFormat = get_image_format(image66)

print(f"Image format: {imageFormat}")

輸出

Image format: JPEG

filename() 方法

演算法

  • 接收影像物件和檔名作為輸入。

  • 在影像物件上設定自定義屬性“filename”並存儲檔名。

  • 返回帶有自定義屬性的影像物件。

示例

image22 = open_image_with_filename('path/to/imageToUpload.jpg')

if hasattr(image22, 'filename'):
   print(f"Image filename: {image22.filename}")
else:
   print("Filename attribute not available for this image.")

輸出

Image filename: path/to/image.jpg

width() 方法

演算法

  • 接收影像物件作為輸入。

  • 使用影像物件的“width”屬性獲取影像的寬度(以畫素為單位)。

  • 將寬度作為整數返回。

示例

from PIL import Image

image121 = Image.open('path/to/imageToUpload.jpg')

width = get_image_width(image121)

print(f"Image width: {width} pixels")

輸出

Image width: 800 pixels

height() 方法

演算法

  • 接收影像物件作為輸入。

  • 使用影像物件的“height”屬性獲取影像的高度(以畫素為單位)。

  • 將高度作為整數返回。

示例

from PIL import Image

image2 = Image.open('path/to/imageToUpload.jpg')

height = get_image_height(image2)

print(f"Image height: {height} pixels")

輸出

Image height: 600 pixels

結論

總之,使用 Pillow 模組在 Python 中處理影像資料提供了一種靈活的方法來處理和修改影像。除了以各種格式開啟和儲存影像外,Pillow 還提供廣泛的功能,包括執行復雜的操作,如調整大小、旋轉、濾鏡和顏色增強。透過訪問畫素資料和應用變換,可以實現自定義影像修改和計算機視覺任務。對元資料和動畫影像的支援也使得管理各種型別的視覺資料成為可能。Pillow 易於使用且擁有廣泛的文件,因此成為 Python 開發人員處理影像的流行選擇。無論是一個簡單的調整大小操作還是複雜的影像分析,Pillow 的強大功能集都能夠讓使用者有效且創造性地管理影像資料。

更新於: 2023年8月3日

904 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.