利用python自动生成证件照

沙雕模式开启

又到了一次交个人信息表的时候了,在word照片框贴照片时发现自己之前放在e盘的电子照片不见了,我丢。之前去照相馆就只留了一张底片,疫情当前(打游戏懒得出门),作为时代好青年,出门拍照是不可能的,为一张电子照掏钱这辈子都不可能的。我就上网找有没有好用的api可以拉拉线,做几张证件照。没想到还真找到了。 没错,就是这个网站,看起来还挺不错,提供了api给开发者(菜鸟人员)方便快捷地进行抠图(沙雕)。 熟悉的注册登录后,点击api那里,获取一个密钥,一个月可以免费试用50次抠图。 然后就可以抠图了。可以将你的照片只保留你的肖像,其他的地方切换为白色背景。

下一步操作

接下来就需要将白色背景换成红色或者蓝色了,这就需要用到一个Image的模块了,然后去cmd下载就好了。

pip install Image

然后你就会惊奇地发现 没错,报错了。

这个需要给它注明安装的路径,或者可以直接使用映像文件进行处理。我用了清华的但是也不行,就换了一个豆瓣的,结果是肯定的(不然我还敢在这里沙雕?)。

pip install  -i https://pypi.doubanio.com/simple/  --trusted-host pypi.doubanio.com    --target=d:pythonpython37libsite-packages     Image

success开头一般都是吉祥的。这样就好了。

#导入库
import os
from PIL import Image
from PIL import ImageDraw,ImageFont
from removebg import RemoveBg

rmbg = RemoveBg("q7QUzDPdZWBF1qXDXGd5qYWw", "in.log") # 引号内是你获取的API
rmbg.remove_background_from_img_file(r"E://图片处理//4.jpg") #图片的路径名
im = Image.open(E://图片处理//4.jpg_no_bg.png)
#draw = ImageDraw.Draw(im)
#fnt = ImageFont.truetype(rC:WindowsFontsSTXINGKA.TTF,50)
#draw.text((40, 140), u运动改变人生, fill=black, font=fnt)
x,y = im.size #图片大小
try: 
    p = Image.new(RGBA, im.size, (255,0,0))#底色换为红色
    p.paste(im, (0, 0, x, y), im)
    p.save(E://图片处理//4.png)#换色完成后保存的名字
    print(抠图成功!)
except:
    pass

中间注释部分是因为我做了一个跑步女的试验图片,效果有点丑,因为色差原因,利用alpha通道抠图效果不好。但是这些代码用于自拍生成是可以的。

另一种方法

python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

再用这一行下载模块

pip install  -i https://pypi.doubanio.com/simple/  --trusted-host pypi.doubanio.com    --target=d:pythonpython37libsite-packages     paddlehub

然后运行代码就能抠图了。

import os, paddlehub as hub
humanseg = hub.Module(name=deeplabv3p_xception65_humanseg)  # 加载模型
path = E:\图片\ # 文件目录
files = [path + i for i in os.listdir(path)] # 获取文件列表
results = humanseg.segmentation(data={
          
   image:files}) # 抠图

但是其缺点就是,抠图速度较慢,但是重在于免费。

结束语

经验分享 程序员 微信小程序 职场和发展