目录
前言
一个图标带上光秃秃的白色背景真是丑爆了.不如扣掉算了.
第三方库
-
PIL (图图像处理库)
处理逻辑
- 打开图像,转换为RGBA模式,以支持透明度;
- 遍历每个像素点,将白色背景的像素设为透明;
- 裁剪图像,去除透明边缘
- 保存图片
代码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName : image_crop.py
# @Time : 2023/7/31 11:37
# @Author : Marst.Zhang
"""
task: 扣除白色的背景图
output:
应用场景:
"""
from PIL import Image
def crop_white_background(image_path):
# 打开图像
image = Image.open(image_path)
# 转换为RGBA模式,以支持透明度
image = image.convert("RGBA")
# 获取图像的宽度和高度
width, height = image.size
# 遍历每个像素点,将白色背景的像素设为透明
for x in range(width):
for y in range(height):
r, g, b, a = image.getpixel((x, y))
if r == 255 and g == 255 and b == 255: # 判断是否为白色背景
image.putpixel((x, y), (255, 255, 255, 0)) # 将白色背景设为透明
# 裁剪图像,去除透明边缘
cropped_image = image.crop(image.getbbox())
# 保存裁剪后的图像
cropped_image.save("my_image_new.ico")
if __name__ == '__main__':
# 调用函数进行裁剪
image_path = r"my_image.ico"
crop_white_background(image_path)