python RTL自动生成_利用python自动生成证件照

3bb1dc51bd3cdfb93da50fb07f9ca34d.png

又到了一次交个人信息表的时候了,在word照片框贴照片时发现自己之前放在e盘的电子照片不见了,我丢。之前去照相馆就只留了一张底片,疫情当前(打游戏懒得出门),作为时代好青年,出门拍照是不可能的,为一张电子照掏钱这辈子都不可能的。我就上网找有没有好用的api可以拉拉线,做几张证件照。没想到还真找到了。

0262f9d67903d118be3cf88a1896d324.png


没错,就是这个网站,看起来还挺不错,提供了api给开发者(菜鸟人员)方便快捷地进行抠图(沙雕)。
熟悉的注册登录后,点击api那里,获取一个密钥,一个月可以免费试用50次抠图。
然后就可以抠图了。可以将你的照片只保留你的肖像,其他的地方切换为白色背景。

下一步操作

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

pip install Image

然后你就会惊奇地发现

5ca3612a7722a41819855016bdbf0fa0.png


没错,报错了。

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

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

45d9f5078ff980e791942fca7e81b89f.png


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

实图与效果图如下:(为了和谐页面,我打了码)

7418c0a2df94c1c7d3f7b314757e0a2a.png

a3edbb15262d6a6a73ebfde302c388ae.png


最后就是代码了。

#导入库
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(r'C: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通道抠图效果不好。但是这些代码用于自拍生成是可以的。

6d58dd85e194e6377c4dd303abe09a40.png

另一种方法

下面还有另一种方法,就是调用paddlehub库,需要另行下载文件。
先用这一行代码下载库

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}) # 抠图1234

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

python学习

【Python编程自学】推荐几个非常 nice 的免费学习网站_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com
55ae1c304e0eb6b52cf995347346505c.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值