如何使用 Python 中的 Pillow 合併影像?


Python 是一種流行的程式語言,全球開發者都使用它來構建各種應用程式。Python 的一大優勢是擁有多個強大的庫,可以簡化複雜的任務。Pillow 就是這樣一個庫,它用於影像處理任務,例如調整大小、裁剪和處理影像。

在本教程中,我們將探討如何使用 Pillow 在 Python 中水平和垂直合併影像。影像合併是指將兩張或多張影像組合成一張影像的過程。透過合併影像,我們可以建立令人驚豔的影像拼貼畫、將多張影像組合成一張影像或建立影像序列。在本文的後續部分,我們將深入探討使用 Pillow 載入影像、調整影像大小以及最終水平和垂直合併影像的過程。

如何使用 Python 中的 Pillow 合併影像?

在影像處理中,合併是指將兩張或多張影像組合成一張影像。影像合併是一項強大的技術,允許您建立令人驚豔的影像拼貼畫、將多張影像組合成一張影像或建立影像序列。在本教程中,我們將學習如何使用 Python 中的 Pillow 庫合併影像。

在開始之前,我們需要安裝 Pillow 庫。在本教程中,我們假設您的系統上已安裝 Python。

要安裝 Pillow 庫,我們可以使用 pip,它是 Python 的包安裝程式。開啟您的終端或命令提示符並輸入以下命令:

pip install Pillow

此命令將下載並安裝 Pillow 庫及其依賴項。現在我們可以繼續本文的下一部分,我們將學習如何使用 Pillow 載入影像。

使用 Pillow 合併影像

現在我們已經安裝了 Pillow,讓我們繼續使用它來合併影像。

合併是指將多張影像組合成一張影像。我們可以水平或垂直合併影像。

為了使用 Pillow 合併影像,我們使用 Image 模組的 concatenate() 方法。concatenate() 方法有兩個引數:images 和 direction。images 引數是我們想要合併的影像列表,direction 引數指定我們是想水平合併還是垂直合併影像。

水平合併

水平合併是將兩張或多張影像水平組合成一張影像的過程。這裡我們使用以下兩張影像作為“image-1”和“image-2”

Image-1

Image-2

示例

考慮以下使用 Pillow 執行水平合併的程式碼片段:

from PIL import Image

# Load the images
image1 = Image.open("image-1.jpg")
image2 = Image.open("image-2.jpg")

# Get the dimensions of the images
width1, height1 = image1.size
width2, height2 = image2.size

# Create a new image with the combined width and the height of the tallest image
new_width = width1 + width2
new_height = max(height1, height2)
new_image = Image.new("RGB", (new_width, new_height))

# Paste the two images onto the new image
new_image.paste(image1, (0, 0))
new_image.paste(image2, (width1, 0))

# Save the new image
new_image.save("concatenated_image_horizontal.jpg")

在此程式碼片段中,我們首先載入我們想要合併的兩張影像。然後,我們使用 size 屬性獲取影像的尺寸。我們使用 new() 方法建立一個新的影像物件,其寬度為兩張影像寬度的總和,高度為最高的影像的高度。

然後,我們將這兩張影像貼上到新影像上,第一張影像 (image1) 從左上角 (0, 0) 開始貼上,第二張影像 (image2) 從第一張影像的右上角 (width1, 0) 開始貼上。最後,新的合併影像將儲存到磁碟中,名為“concatenated_image_horizontal.jpg”。

輸出

上述程式碼片段的輸出將是一個名為 concatenated_image_horizontal.jpg 的新影像,它將是兩張輸入影像的水平合併。

從輸出中可以看到,兩張影像被水平貼上在一起以建立最終影像,從而形成水平合併。

垂直合併

垂直合併是將兩張或多張影像垂直組合成一張影像的過程。

要垂直合併影像,我們只需要更改傳遞給 paste() 方法的引數。以下是一個程式碼片段,演示瞭如何使用 Pillow 垂直合併影像:

示例

from PIL import Image

# Load the images
image1 = Image.open("image1.jpg")
image2 = Image.open("image2.jpg")

# Get the dimensions of the images
width1, height1 = image1.size
width2, height2 = image2.size

# Create a new image with the combined width and the height of the tallest image
new_width = max(width1, width2)
new_height = height1 + height2
new_image = Image.new("RGB", (new_width, new_height))

# Paste the two images onto the new image
new_image.paste(image1, (0, 0))
new_image.paste(image2, (0, height1))

# Save the new image
new_image.save("concatenated_image_vertical.jpg")

在上面的程式碼片段中,我們建立一個新的影像物件,其高度為兩張影像高度的總和,寬度為最寬影像的寬度。然後,使用 paste() 方法將這兩張影像貼上到新影像上。image1 貼上在 (0, 0) 位置,即新影像的左上角。image2 貼上在 image1 下方,位置為 (0, height1),其中 height1 是 image1 的高度。

最後,使用 save() 方法將合併的影像儲存為“concatenated_image_vertical.jpg”。

輸出

上述程式碼片段的輸出將是一個名為“concatenated_image_vertical.jpg”的新影像。

從輸出中可以看到,兩張影像被水平貼上在一起以建立最終影像,從而形成水平合併。

結論

在本教程中,我們學習瞭如何使用 Python 中的 Pillow 合併影像。我們使用 Pillow 庫載入和處理影像,然後使用 Image 模組的 concatenate() 方法水平和垂直合併影像。

我們為每種方法提供了一個示例,您可以使用這些示例來建立令人驚豔的影像拼貼畫、將多張影像組合成一張影像或建立影像序列。透過遵循本教程中概述的步驟,您可以輕鬆地在 Python 中合併影像並在您的專案中使用它們。

更新於:2023年7月21日

1K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告