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

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

但是IOS图标不允许图标中包含 Alpha通道。

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

#!/usr/bin/python3
#!--*-- 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 img_pil.info):
        # Need to convert to RGBA if LA format due to a bug in PIL (http://stackoverflow.com/a/1963146)
        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
        # (http://stackoverflow.com/a/8720632  and  http://stackoverflow.com/a/9459208)
        bg = Image.new("RGBA", img_pil.size, bg_colour + (255,))
        bg.paste(img_pil, mask=alpha)
        return bg

    else:
        return img_pil

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

参考链接


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

发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注