使用Python修改PNG图片大小同时保持透明性

Input

input.png

Output

output.png

Script

from PIL import Image


def resize_image(input_path, output_path, size, background_color=None):
    # 打开原始图片
    image = Image.open(input_path)

    # 设置缩放的目标尺寸,并保持宽高比
    image.thumbnail(size)

    # 创建一个带透明度的新图片
    new_image = Image.new("RGBA", size, background_color)

    # 将缩放后的图片粘贴到新图片上,保留透明度
    new_image.paste(image, ((size[0] - image.size[0]) // 2, (size[1] - image.size[1]) // 2), mask=image)

    # 保存新图片
    new_image.save(output_path)


# 示例用法
input_path = "input.png"  # 原始图片路径
output_path = "output.png"  # 缩放后的图片路径
target_size = (53, 43)  # 目标尺寸
# background_color = (0, 0, 0)  # 背景颜色,红色示例
background_color = None
resize_image(input_path, output_path, target_size, background_color)