Pillow - 調整影像大小



在 Pillow 庫中調整影像大小包括更改影像的尺寸,即寬度和高度。此操作可用於使影像更大或更小,並且可以用於各種目的,例如準備用於網站上顯示的影像、減小檔案大小或生成縮圖。

使用 resize() 方法調整影像大小

在 Pillow 中,resize() 方法用於更改影像的尺寸。此函式允許我們以以下方式調整影像大小。

  • 絕對尺寸 - 我們可以指定影像應調整到的新寬度和高度(以畫素為單位)。

  • 保持縱橫比 - 如果我們只指定一個維度(寬度或高度),則 Pillow 可以自動計算另一個維度以保持影像的縱橫比。

  • 縮放 - 我們可以透過縮放因子調整影像大小,該縮放因子在保持縱橫比的同時統一調整寬度和高度。

以下是 resize() 方法的基本語法 -

PIL.Image.resize(size, resample=3)

其中,

  • size - 這可以是指定新寬度和高度(以畫素為單位)的元組,即指定新大小(寬度或高度)的單個整數,或指定縮放因子的浮點數。

  • resample(可選) - 預設值為 3,對應於抗鋸齒高質量濾鏡。我們可以從各種重取樣濾鏡中選擇,例如 Image.NEAREST、Image.BOX、Image.BILINEAR、Image.HAMMING、Image.BICUBIC、Image.LANCZOS 等。

以下是本章所有示例中使用的輸入影像。

flower

示例

在此示例中,我們使用 resize() 函式透過傳遞元組作為輸入引數來調整影像的寬度和高度。

from PIL import Image

#Open an image
image = Image.open("Images/rose.jpg")

#Resize to specific dimensions (e.g., 300x200 pixels)
new_size = (300, 200)
resized_image = image.resize(new_size)

#Display resized image
resized_image.show()

輸出

flower image

示例

在此示例中,我們透過保持原始輸入影像的相同縱橫比來調整影像大小。

from PIL import Image

#Open an image
image = Image.open("Images/rose.jpg")

#Resize by maintaining aspect ratio (e.g., specify the width)
new_width = 200
aspect_ratio_preserved = image.resize((new_width, int(image.height * (new_width / image.width))))
aspect_ratio_preserved.show()

輸出

flower resized

示例

在此示例中,我們透過縮放因子調整影像大小。

from PIL import Image

#Open an image
image = Image.open("Images/rose.jpg")

#Scale the image by a factor (e.g., 10% of the original size)
scaling_factor = 0.1
scaled_image = image.resize((int(image.width * scaling_factor), int(image.height * scaling_factor)))
scaled_image.show()

輸出

flower output
廣告