¿Cómo fusionar una imagen PNG transparente con otra imagen usando PIL?

Este artículo trata sobre cómo poner una imagen PNG transparente con otra imagen. Esta es una operación muy común en las imágenes. Tiene muchas aplicaciones diferentes. Por ejemplo, agregar una marca de agua o un logotipo en una imagen. Para hacer esto, estamos usando el módulo PIL en Python. En el que usamos algunos métodos incorporados y combinamos las imágenes de tal manera que parece estar pegado.

  • Función Abrir : se utiliza para abrir una imagen.
  • Función de conversión : devuelve una copia convertida de una imagen dada. Convierte la imagen a su color verdadero con una máscara de transparencia.
  • Función Pegar : se utiliza para pegar una imagen en otra imagen. 

Sintaxis: PIL.Image.Image.paste(imagen_1, imagen_2, cuadro=Ninguno, máscara=Ninguno)

imagen_objeto.paste(imagen_2, cuadro=Ninguno, máscara=Ninguno)

Parámetros:

  • image_1/image_object : Es la imagen sobre la que se pegará otra imagen.
  • image_2: imagen de origen o valor de píxel (entero o tupla).
  • cuadro: una tupla de 4 opcional que proporciona la región para pegar. Si en su lugar se usa una tupla de 2, se trata como la esquina superior izquierda. Si se omite o Ninguno, la fuente se pega en la esquina superior izquierda.
  • máscara: una máscara que se utilizará para pegar la imagen. Si pasa una imagen con transparencia, entonces el canal alfa se usa como máscara.

Acercarse:

  • Abra la imagen frontal y de fondo usando la función Image.open().
  • Convierte tanto la imagen a RGBA.
  • Calcula la posición donde quieres pegar la imagen.
  • Utilice la función de pegar para fusionar las dos imágenes.
  • Guarda la imagen.

Datos de entrada:

Para ingresar los datos, estamos usando dos imágenes:

  • Imagen frontal: una imagen transparente como un logotipo

  • Imagen de fondo: Para el fondo como cualquier imagen de fondo de pantalla

Implementación:

Python3

# 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")

Producción:

Publicación traducida automáticamente

Artículo escrito por adityapande88 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *