Skip to content
Related Articles

Related Articles

Improve Article

How to merge a transparent PNG image with another image using PIL?

  • Last Updated : 03 Mar, 2021
Geek Week

This article discusses how to put a transparent PNG image with another image. This is a very common operation on images. It has a lot of different applications. For example, adding a watermark or logo on an image. To do this, we are using the PIL module in Python. In which we use some inbuilt methods and combine the images in such a way that it looks to be pasted.

  • Open Function It is used to open an image.
  • Convert FunctionIt returns a converted copy of a given image. It converts the image to its true color with a transparency mask.
  • Paste FunctionIt is used to paste an image on another image. 

Syntax: PIL.Image.Image.paste(image_1, image_2, box=None, mask=None)
OR 
image_object.paste(image_2, box=None, mask=None)

Parameters:

  • image_1/image_object : It is the image on which other image is to be pasted.
  • image_2: Source image or pixel value (integer or tuple).
  • box: An optional 4-tuple giving the region to paste into. If a 2-tuple is used instead, it’s treated as the upper left corner. If omitted or None, the source is pasted into the upper left corner.
  • mask: a mask that will be used to paste the image. If you pass an image with transparency, then the alpha channel is used as the mask.

Approach:

  • Open the front and background image using Image.open() function.
  • Convert both the image to RGBA.
  • Calculate the position where you want to paste the image.
  • Use the paste function to merge the two images.
  • Save the image.

Input Data:



To input the data, we are using two images:

  • Front Image: A transparent image like a logo

  • Background image: For background like any wallpaper image

Implementation:

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

Output:

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course




My Personal Notes arrow_drop_up
Recommended Articles
Page :