解决pillow对png图进行旋转后区域变大的问题

发布时间 2023-11-30 16:32:29作者: 海_纳百川

问题描述:

原图:

旋转逆时针45度后

这个时候就导致png图的四周出现透明区域,如果这个时候进行贴图的画就导致实际logo的面积变大,这个时候的解决办法是删除四个边的透明区域,获得最小边界框

from PIL import Image

def trim_transparent_edges(image_path, output_path):
    # 打开图像
    img = Image.open(image_path)

    # 获取图像的透明度通道
    alpha = img.split()[3]

    # 获取透明区域的边界框
    bbox = alpha.getbbox()

    # 裁剪图像
    trimmed_img = img.crop(bbox)

    # 保存裁剪后的图像
    trimmed_img.save(output_path)

# 示例用法
input_image_path = "input.png"
output_image_path = "output.png"

trim_transparent_edges(input_image_path, output_image_path)