Python Pillow - ImageChops.duplicate() 函式



PIL.ImageChops.duplicate() 函式是 PIL.Image.Image.copy() 方法的別名。兩者執行相同的操作,它們建立輸入影像的副本(複製)。複製的目的是允許修改複製的影像,同時保持原始影像不變。

語法

以下是函式的語法:

PIL.ImageChops.duplicate(image)

或者

PIL.Image.Image.copy()

引數

以下是其引數的詳細資訊:

  • Image - 要建立副本的影像物件。

返回值

該函式返回一個 Image 物件,它是輸入影像的副本(複製)。

示例

示例 1

此示例演示了以兩種不同方式複製影像的過程:使用 ImageChops.duplicate() 函式和使用 copy() 方法。

from PIL import Image, ImageChops

# Open the original image 
original_image = Image.open('Images/Car_2.jpg')

# Duplicate the original image using the ImageChops.duplicate() function
duplicated_image = ImageChops.duplicate(original_image)

# Duplicate the original image using the copy() method
image_copy = original_image.copy()

# Print the IDs of the original and duplicated images
print('IDs of the Image objects')
print('Original Image:', id(original_image))
print('Duplicated Image:',id(duplicated_image))
print('Copied Image:', id(image_copy))

輸出

IDs of the Image objects
Original Image: 1568872675552
Duplicated Image: 1568861890592
Copied Image: 1568861889968

您可以看到,這兩種方法都建立了原始影像的獨立副本,每個副本都有唯一的標識。

示例 2

以下示例演示如何使用 ImageChops.duplicate() 方法建立影像副本,然後將另一個影像貼上到副本上,而不會影響原始影像,然後顯示兩張影像進行比較。

from PIL import Image, ImageChops

# Open the original image and logo
image = Image.open('Images/Car_2.jpg')
logo = Image.open('Images/tutorialspoint2.jpg')

# Duplicate the original image
image_copy = ImageChops.duplicate(image)

# Get the position to paste the logo
position = ((image_copy.width - logo.width), (image_copy.height - logo.height))

# Paste the logo onto the duplicated image
image_copy.paste(logo, position)

# Display the duplicated and original images
image_copy.show()
image.show()

輸出

原始影像

balck yellow car

複製的影像

tutorialspoint

您可以觀察到,即使在對副本進行修改後,原始影像也保持不變。

示例 3

以下示例演示如何使用 Image.copy() 方法建立影像副本,然後將另一個影像貼上到副本上,而不會影響原始影像。之後,顯示兩張影像進行比較。

from PIL import Image, ImageDraw

# Open the original image and logo
original_image = Image.open('Images/Car_2.jpg')
logo = Image.open('Images/tutorialspoint2.jpg')

# Duplicate the original image
duplicated_image = original_image.copy()

# Get the position to paste the logo
position = ((duplicated_image.width - logo.width), (duplicated_image.height - logo.height))

# Paste the logo onto the duplicated image
duplicated_image.paste(logo, position)

# Display both the duplicated and original images
duplicated_image.show()
original_image.show()

輸出

原始影像

car

複製的影像

tp logo car
python_pillow_function_reference.htm
廣告