Python Pillow - ImageChops.composite() 函数



ImageChops.composite() 函数用于通过使用透明蒙版混合两个图像来创建合成图像。此函数是主 Image 模块中 composite 函数的别名。

语法

以下是该方法的语法:

PIL.ImageChops.composite(image1, image2, mask)

或者

PIL.Image.composite(image1, image2, mask)

参数

以下是其参数的详细信息:

  • image1 - 要合成的第一个输入图像。

  • image2 - 要合成的第二个输入图像。它必须与第一个图像具有相同的模式和大小。

  • mask - 蒙版图像。此图像可以具有“1”、“L”或“RGBA”模式,并且必须与其他两个图像具有相同的大小。

返回值

此函数的返回类型为 Image。

示例

示例 1

在此示例中,image1、image2 和 mask 是输入图像,composite() 函数用于根据 mask 中的透明度信息将它们混合在一起。

from PIL import Image, ImageChops

# Open the first image
image1 = Image.open('Images/Light.jpg')

# Open the second image with the same mode and size as the first image
image2 = Image.open('Images/TP-W.jpg')

# Open the mask image with mode "L" 
mask = Image.open("Images/mask.jpg").convert("L")

# Use the composite function from ImageChops to blend the images using the mask
composite_image = ImageChops.composite(image1, image2, mask)

# Display or save the resulting composite image
image1.show()
image2.show()
mask.show()
composite_image.show()

输出

输入图像 1

light

输入图像 2

tp_w

输入蒙版

mask

输出合成图像

chops composite

示例 2

提供的示例创建一个像素值为 128 的纯灰色图像,并将其用作蒙版以将两个图像混合在一起。

from PIL import Image, ImageChops

# Open the first image
image1 = Image.open('Images/TP-W.jpg')

# Open the second image with the same mode and size as the first image
image2 = Image.open('Images/rose.jpg').resize(image1.size)

# Create a solid gray mask image with a pixel value of 128
mask = Image.new("L", image1.size, 128)

# Use the composite function to blend the images using the mask
composite_image = Image.composite(image1, image2, mask)

# Display the input and resulting images
image1.show()
image2.show()
mask.show()
composite_image.show()

输出

输入图像 1

tp_w

输入图像 2

red flower

输入蒙版

mask image

输出合成图像

imagechops composite

示例 3

此示例创建一个在黑色背景上带有白色矩形的蒙版,并使用它将两个图像混合在一起。

from PIL import Image, ImageDraw

# Open the first image
image1 = Image.open('Images/TP-W.jpg')

# Open the second image with the same mode and size as the first image
image2 = Image.open('Images/rose.jpg').resize(image1.size)

# Create a mask image with a white rectangle on a black background
mask = Image.new("L", image1.size, 0)
draw = ImageDraw.Draw(mask)
draw.rectangle((245, 45, 445, 345), fill=255)

# Use the composite function to blend the images using the mask
composite_image = Image.composite(image1, image2, mask)

# Display the input and resulting images
image1.show()
image2.show()
mask.show()
composite_image.show()

输出

输入图像 1

tp_w

输入图像 2

red flower

输入蒙版

bw box

输出合成图像

output composite image
python_pillow_function_reference.htm
广告