写点什么

python 替换图片背景色,适用于制作证件照

作者:技能实验室
  • 2022-10-19
    河南
  • 本文字数:1055 字

    阅读完需:约 1 分钟

功能需求

需要实现一个替换图片背景的功能,去制作不同颜色背景的证件照

需求分析

根据功能需求,需要实现一个去除背景的功能,然后还需要一个背景颜色的操作;


  • 去除背景,也就是 PS 中的抠图,可以使用一个有名的工具 removebg;removebg 是一个 ai 抠图的软件,传入一张图片,就能自动抠图;同时它还提供了 api,供调用,不过,需要登录获取 APIkey,且有数量大小的限制;

  • removebg 也有替换背景图的功能,但是使用 python 中的 PIL 库也能轻松实现背景图的添加;

代码实现:

抠图调用 removebg 提供的 api 接口


首先需要注册一个账号;登录后获取 api key,如果不想注册,可以使用我的这个;可以参考官网提供的代码实现抠图功能


需要一个第三方库 requests:


requests 是一个很实用的 Python HTTP 客户端库,编写爬虫和测试服务器响应数据时经常会用到,Requests 是 Python 语言的第三方的库,专门用于发送 HTTP 请求


安装方法:需求提前安装有 pip 根据,执行以下代码安装:


pip install requests


抠图功能实现:


import requests#response = requests.post(    'https://api.remove.bg/v1.0/removebg',    files={'image_file': open(input_path, 'rb')},    data={'size': 'auto'},    headers={'X-Api-Key': 'C4kFLgD3f4YTwXh3iFxwLxZz'},)if response.status_code == requests.codes.ok:    with open('no-bg.png', 'wb') as out:        out.write(response.content)else:    print("Error:", response.status_code, response.text)
复制代码


给透明图背景颜色


需要使用另一个 python 第三方库 PILPillow 库是一个 Python 的第三方库。在 Python2 中,PIL(Python Imaging Library)是一个非常好用的图像处理库,但 PIL 不支持 Python3,所以有人(Alex Clark 和 Contributors)提供了 Pillow,可以在 Python3 中使用。


官方文档路径:访问文档


安装 PIL:以 python3 为例,安装命令如下:


pip install Pillow


安装的名称为 pillow,但是导入时,需要导入 PIL


from PIL import Image


给图片加背景颜色的思路:


首先创建一个指定颜色的新图片对象;加载原有图片将两张图片合并,已纯色背景图片为底


实现代码:


# 要替换的背景颜色color = "red"# 加上背景颜色no_bg_image = Image.open('no-bg.png')x, y = no_bg_image.size# 创建新图片new_image = Image.new('RGBA', no_bg_image.size, color=color)#将无背景的图片粘贴到新图片对象上去new_image.paste(no_bg_image, (0, 0, x, y), no_bg_image)new_image.save(output_path)
复制代码


以上就实现了一个制作证件照的功能;其中抠图功能,还有其他方法可以实现,如使用 python 中的第三方库 rembg;

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2022-07-26 加入

还未添加个人简介

评论

发布
暂无评论
python替换图片背景色,适用于制作证件照_python 3.5+_技能实验室_InfoQ写作社区