Python - 移除PNG透明图的alpha通道

在利用 Photoshop 等得到的 PNG 透明图中,一般都是包含 alpha channel 的.

下面的代码实现的功能:Remove PNG Transparency

#!--*-- coding:utf-8 --*--

def remove_transparency(img_pil, bg_colour=(255, 255, 255)):
    # Only process if image has transparency
    if img_pil.mode in ('RGBA', 'LA') or \
        (img_pil.mode == 'P' and 'transparency' in
        # Need to convert to RGBA if LA format due to a bug in PIL (
        alpha = img_pil.convert('RGBA').split()[-1]

        # Create a new background image of our matt color.
        # Must be RGBA because paste requires both images have the same format
        # (  and
        bg ="RGBA", img_pil.size, bg_colour + (255,))
        bg.paste(img_pil, mask=alpha)
        return bg

        return img_pil

From: Remove transparency/alpha from any image using PIL - stackoverflow

Last modification:May 13th, 2019 at 01:28 pm

Leave a Comment