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
广告