Sometimes, we need make the backgroud of an image transparent, how to implement it in python? In this tutorial, we will implement this function using python pillow library.
This tutorial refers:
Python Pillow Change a Specific Color of an Image: A Step Guide
Load an image using python pillow
We can open an image to process first.
from PIL import Image im = Image.open("file.png")
file.png is:
The image mode is RGB.
In order to know how to get the mode of an image, you can check this tutorial.
Python Pillow Get and Convert Image Mode: A Beginner Guide
Convert image mode to RGBA
In order to make the backgroud of an image transparent, we must make its image mode be RGBA, which contains an alpha channel.
img = im.convert("RGBA")
Then we can process this image pixel by pixel.
Convert the backgroud of an image transparent
The backgroud color of file.png is white(255, 255, 255). We should make all pixels with white color transparent.
width = img.size[0] height = img.size[1] for x in range(0,width):# process all pixels for y in range(0,height): data = img.getpixel((x, y)) if (data[0] == 255 and data[1] == 255 and data[2] == 255 ): img.putpixel((x, y), (255, 255, 255, 0))
img.putpixel((x, y), (255, 255, 255, 0)) can make a pixel transparent.
Then we can display the processed image.