不到100行代码制作各种证件照

简介: 不到100行代码制作各种证件照

生活中经常需要使用各种版本的电子版证件照,如:红底、蓝底、白底、一寸、两寸等等。在 Python 中替换图片背景色可以用 Image 模块,利用 Image 模块可以改变图片大小、背景色等操作。



image.png


人像分离

第一步将原图片中的人物与背景分离,我们使用百度 AI 开放平台中的人像分割功能,它的免费版有 50000次/天。使用百度的产品都知道需要一个 SK 和 AK。


image.png


def get_access_token(self):
    """
    获取 access_token
    """
    # 注意 SK 与 AK
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=ak&client_secret=sk'
    response = requests.get(host)
    if response:
        return response.json()['access_token']
def get_foreground(self, originalImagePath, ):
    """
    人像分割
    """
    # 二进制方式打开图片文件
    f = open(originalImagePath, 'rb')
    img = base64.b64encode(f.read())
    params = {"image": img}
    # 请求 百度 AI 开放平台
    request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_seg?access_token=" + get_access_token()
    headers = {'content-type': 'application/x-www-form-urlencoded'}
    params = {"image": img}
    response = requests.post(request_url, data=params, headers=headers)
    if response:
        foreground = response.json()['foreground']
        img_data = base64.b64decode(foreground)
        # 人像图片存放地址
        foreground_path = 'foreground.png'
        with open(foreground_path, 'wb') as f:
            f.write(img_data)


结果示例


image.png


创建背景图片

第二步将创建一个底色为红色、蓝色、白色的图片,它的大小为一寸(295px × 413px)和二寸(413px × 579px)。


def get_background():    """    背景图片    """    color = ('red', 'blue', 'white')    imgs = []    for c in color:        # 一寸照片大小        img = Image.new("RGBA", (295, 413), c)        imgs.append(img)    return imgs


合并图片


第三步将红蓝白背景图与人像图片合并,这里需要使用 Image 模块的 resize() 将人像图片裁剪到合适的像素,再使用 paste() 方法将图像合并。


def main():    fore = get_foreground('original.jpg')    # 将图像裁剪到合适的像素    p = fore.resize((330, 415))    # 分离图片    r,g,b,a = p.split()
    imgs = get_background()    for img in imgs:        # 将底色图像和人物图像合并,mask参数为去掉透明背景色        img.paste(p, (-30, 50), mask = a)        img.show()

结果示例


image.png


结语

使用 Image 模块可以制作我们需要的各种电子版证件照,如果将背景图换成风景图我们就可以在朋友圈旅游了。

目录
相关文章
|
5月前
|
人工智能 搜索推荐 定位技术
证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
|
5月前
在微信小游戏制作工具中制作一个下雨的效果
在微信小游戏制作工具中制作一个下雨的效果
33 0
|
5月前
|
图形学
如何在微信小游戏制作工具中做出好看的粒子效果?
如何在微信小游戏制作工具中做出好看的粒子效果?
47 1
|
5月前
水晶头制作
水晶头制作。
124 44
|
9月前
|
自然语言处理 Python Windows
|
10月前
|
搜索推荐 Python
|
10月前
Photoshop制作简洁清新的插画海报图片
Photoshop制作简洁清新的插画海报图片
48 0
|
Android开发
如何用手机快速制作好看的二维码
由于二维码的出现,给我们的生活带来了很大的方便。由于工作的原因,小编经常会看到一些制作精美的二维码,很是好奇他们是怎么制作出如此好看的二维码的。为了给大家推荐真正好用的二维码制作软件,小编对比了市面上好多类似的软件,发现了一款还不错的App--二维码和条形码生成器,支持鸿蒙、安卓、苹果等各种手机。下面就让小编给大家详细介绍下如何用“二维码和条形码生成器”来制作精美的二维码吧。