Adding Background Color to PNG using Python

While converting from PNG to JPG, a black/white background will be added to fill in the transparent layer of PNG. This python code enable user to customise this background color while converting PNG images to JPG

Adding Background Color to PNG using Python

Reference

Dependency

python 3.7.2

pytesseract

pip install pytesseract

The Code

from PIL import Image
im = Image.open(r"C:\tmp\test.png")

fill_color = (120,8,220)  # your new background color

im = im.convert("RGBA")   # it had mode P after DL it from OP
if im.mode in ('RGBA', 'LA'):
    background = Image.new(im.mode[:-1], im.size, fill_color)
    background.paste(im, im.split()[-1]) # omit transparency
    im = background

im.convert("RGB").save(r"C:\tmp\result.jpg")

Loop Through Folder

import os
from PIL import Image

path = r"C:\tmp"

for root, dirs, files in os.walk(path, topdown=False):
    for name in files:
        print(os.path.join(root, name))

        im = Image.open(os.path.join(root, name))

        fill_color = (120,8,220)   # your new background color

        im = im.convert("RGBA")   # it had mode P after DL it from OP
        if im.mode in ('RGBA', 'LA'):
            background = Image.new(im.mode[:-1], im.size, fill_color)
            background.paste(im, im.split()[-1]) # omit transparency
            im = background
        result = name.replace(".png", ".jpg")

        im.convert("RGB").save(os.path.join(root, result))