天天看點

python RTL自動生成_利用python自動生成證件照

python RTL自動生成_利用python自動生成證件照

又到了一次交個人資訊表的時候了,在word照片框貼照片時發現自己之前放在e盤的電子照片不見了,我丢。之前去照相館就隻留了一張底片,疫情目前(打遊戲懶得出門),作為時代好青年,出門拍照是不可能的,為一張電子照掏錢這輩子都不可能的。我就上網找有沒有好用的api可以拉拉線,做幾張證件照。沒想到還真找到了。

python RTL自動生成_利用python自動生成證件照

沒錯,就是這個網站,看起來還挺不錯,提供了api給開發者(菜鳥人員)友善快捷地進行摳圖(沙雕)。

熟悉的注冊登入後,點選api那裡,擷取一個密鑰,一個月可以免費試用50次摳圖。

然後就可以摳圖了。可以将你的照片隻保留你的肖像,其他的地方切換為白色背景。

下一步操作

接下來就需要将白色背景換成紅色或者藍色了,這就需要用到一個Image的子產品了,然後去cmd下載下傳就好了。

pip install Image
           

然後你就會驚奇地發現

python RTL自動生成_利用python自動生成證件照

沒錯,報錯了。

這個需要給它注明安裝的路徑,或者可以直接使用映像檔案進行處理。我用了清華的但是也不行,就換了一個豆瓣的,結果是肯定的(不然我還敢在這裡沙雕?)。

pip install  -i https://pypi.doubanio.com/simple/  --trusted-host pypi.doubanio.com    --target=d:pythonpython37libsite-packages     Image
           
python RTL自動生成_利用python自動生成證件照

success開頭一般都是吉祥的。這樣就好了。

實圖與效果圖如下:(為了和諧頁面,我打了碼)

python RTL自動生成_利用python自動生成證件照
python RTL自動生成_利用python自動生成證件照

最後就是代碼了。

#導入庫
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通道摳圖效果不好。但是這些代碼用于自拍生成是可以的。

python RTL自動生成_利用python自動生成證件照

另一種方法

下面還有另一種方法,就是調用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

python RTL自動生成_利用python自動生成證件照