如何用PIL将一个透明的PNG图像与另一个图像合并

如何用PIL将一个透明的PNG图像与另一个图像合并

这篇文章讨论了如何把一个透明的PNG图像与另一个图像放在一起。这是对图像的一个非常常见的操作。它有很多不同的应用。例如,在一个图像上添加水印或标志。要做到这一点,我们要使用Python中的PIL模块。在这个模块中,我们使用一些内置的方法,以这样的方式组合图像,使其看起来像被粘贴的。

  • 打开功能 – 它用于打开一个图像。
  • 转换函数 – 它返回一个给定图像的转换副本。它将图像转换为带有透明度遮罩的真实颜色。
  • 粘贴功能 – 它用于将一个图像粘贴到另一个图像上。

语法:

PIL.Image.Image.paste(image_1, image_2, box=None, mask=None)
或者
image_object.paste(image_2, box=None, mask=None)

参数:

  • image_1/image_object : 它是要粘贴其他图像的图像。
  • image_2:源图像或像素值(整数或元组)。
  • box:一个可选的4元组,给出要粘贴的区域。如果用一个2元组代替,它将被视为左上角。如果省略或没有,源文件将被粘贴到左上角。
  • mask:将用于粘贴图像的掩码。如果你传递的是一个具有透明度的图像,那么alpha通道将被用作掩码。

步骤:

  • 使用Image.open()函数打开正面和背景图像。
  • 将这两幅图像转换为RGBA。
  • 计算出你要粘贴图片的位置。
  • 使用粘贴功能,将两张图片合并。
  • 保存图像。

输入数据:

为了输入数据,我们使用两张图片。

  • 正面图像。一个透明的图像,像一个标志

如何用PIL将一个透明的PNG图像与另一个图像合并?

  • 背景图像。对于像任何墙纸图像的背景

如何用PIL将一个透明的PNG图像与另一个图像合并?

实现:

# import PIL module
from PIL import Image
  
# Front Image
filename = 'front.png'
  
# Back Image
filename1 = 'back.jpg'
  
# Open Front Image
frontImage = Image.open(filename)
  
# Open Background Image
background = Image.open(filename1)
  
# Convert image to RGBA
frontImage = frontImage.convert("RGBA")
  
# Convert image to RGBA
background = background.convert("RGBA")
  
# Calculate width to be at the center
width = (background.width - frontImage.width) // 2
  
# Calculate height to be at the center
height = (background.height - frontImage.height) // 2
  
# Paste the frontImage at (width, height)
background.paste(frontImage, (width, height), frontImage)
  
# Save this image
background.save("new.png", format="png")

输出:

如何用PIL将一个透明的PNG图像与另一个图像合并?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程