Python證件照制作小程序源代碼,可一鍵修改證件照背景及大小,采用removebg在線摳圖工具進(jìn)行自動(dòng)摳圖,程序中已提供默認(rèn)apiKey(g79GjuedecMLVVwkfXWSLv26)。直接運(yùn)行程序即可一鍵制作證件照。


核心程序代碼
from PIL import Image
from removebg import RemoveBg
from pathlib import Path
from tkinter import ttk
from ttkthemes import ThemedTk
import tkinter as tk
from tkinter import filedialog, colorchooser
'''
removebg 的APIKEY:g79GjuedecMLVVwkfXWSLv26
'''
img_path = ''
dir_path = ''
bg_color = 'blue'
def change_bg_size():
try:
global img_path
img_path = replace_bg()
change_size()
# 在輸出框顯示提示信息
tree.heading("#0", text="成功修改背景與大??!")
except Exception as e:
# 顯示錯(cuò)誤信息
tree.heading("#0", text=e)
# 修改照片背景色
def replace_bg():
api_key = entry5.get()
# 在程序當(dāng)前目錄創(chuàng)建一個(gè)error.log文件來(lái)保存錯(cuò)誤信息(必要參數(shù))
Path('error.log').touch()
rmbg = RemoveBg(api_key, 'error.log')
# 執(zhí)行后會(huì)在 read_path 同級(jí)文件夾內(nèi)生成一張 xxx_no_bg.png 的圖片
rmbg.remove_background_from_img_file(img_path)
img_no_bg = Image.open(Path(str(img_path) + '_no_bg.png'))
# 創(chuàng)建一個(gè)新的圖像,RGB代表真色彩,3通道,
# color可以為顏色英文名 red 或是 十六進(jìn)制顏色代碼 #00FF00
new_img = Image.new('RGB', img_no_bg.size, color=bg_color)
# 將沒(méi)有背景的圖像粘貼到含背景色的圖像上
new_img.paste(img_no_bg, (0, 0, *img_no_bg.size), img_no_bg)
save_path = Path(dir_path, str(img_path.name).split('.')[0] + 'replace_bg.png')
new_img.save(save_path)
return save_path
tree.heading("#0", text="圖片已生成!")
# 修改照片尺寸
def change_size():
width, height = entry4.get().split('x')
image = Image.open(img_path)
resized_image = image.resize((int(width), int(height)), Image.ANTIALIAS)
resized_image.save(Path(dir_path, str(img_path.name).split('.')[0] + '_change_size.png'))
tree.heading("#0", text="尺寸修改成功!")
# change_bgcolor('證件.png', 'p1_bg.png', 'oRdiK39HgoxdFE1A8QbL7wpF', 'red')
def selectFilePath():
global img_path
# 選擇文件path接收文件地址
img_path = Path(filedialog.askopenfilename(title='選擇原圖片'))
x, y = Image.open(img_path).size
entry4.insert(0, str(x) + 'x' + str(y))
path1.set(img_path)
def selectDirPath():
global dir_path
# 選擇文件path接收文件地址
dir_path = Path(filedialog.askdirectory(title='選擇圖片保存路徑'))
path2.set(dir_path)
def ChooseColor():
global bg_color
# 返回兩種格式的顏色代碼,這里只保存十六進(jìn)制的
_, bg_color = colorchooser.askcolor(title='顏色選擇器')
path3.set(bg_color)
window = ThemedTk(theme="adapta", fonts=True, themebg=True)
window.title('證件照生成器——Python代碼大全')
label_style = ttk.Style()
label_style.configure("one.TLabel", font=("微軟雅黑", 16, 'bold'), foreground="red", background="yellow")
label_style1 = ttk.Style()
label_style1.configure("two.TLabel", font=("微軟雅黑", 9), foreground="blue", background="yellow")
label_style2 = ttk.Style()
label_style2.configure("three.TLabel", font=("微軟雅黑", 10), foreground="blue", background="yellow")
# 設(shè)置選擇圖片路徑組件
path1 = tk.StringVar()
entry1 = ttk.Entry(window, textvariable=path1, width=30)
entry1.insert(0, '格式要求png')
button1 = ttk.Button(window,width=10, text = "圖片路徑", command = selectFilePath)
# 設(shè)置選擇文件保存路徑組件
path2 = tk.StringVar()
entry2 = ttk.Entry(window, textvariable=path2, width=30)
button2 = ttk.Button(window,width=10, text = "保存路徑", command = selectDirPath)
# 設(shè)置選擇背景顏色組件
path3 = tk.StringVar()
entry3 = ttk.Entry(window, textvariable=path3, width=30)
button3 = ttk.Button(window, text='背景顏色', command=ChooseColor)
# 設(shè)置圖片大小,默認(rèn)原圖大小,格式如295x413(標(biāo)準(zhǔn)一寸)
label = ttk.Label(window, text='默認(rèn)原圖大小,若要修改請(qǐng)按[]內(nèi)
格式,如 [295x413] (標(biāo)準(zhǔn)一寸照)', wraplength=200, style='two.TLabel')
entry4 = ttk.Entry(window, width=30)
label1 = ttk.Label(window, text='圖片尺寸', style='three.TLabel')
# 填寫(xiě)api-key
moren = tk.StringVar(value='g79GjuedecMLVVwkfXWSLv26') #默認(rèn)apiKey
entry5 = ttk.Entry(window, width=30, textvariable=moren,show="*")
label2 = ttk.Label(window, text='api-key', style='three.TLabel')
# 添加“同時(shí)修改”按鈕
button4 = ttk.Button(window, text = "同時(shí)修改", command=change_bg_size)
# 添加“修改背景”按鈕
button5 = ttk.Button(window, text = "修改背景", command=replace_bg)
# 添加“修改尺寸”按鈕
button6 = ttk.Button(window, text = "修改尺寸", command=change_size)
# 添加輸出框顯示
tree = ttk.Treeview(height=1, show=("tree", "headings"))
#main_label.grid(row = 0, column = 0, pady=5)
entry1.grid(row = 1, column = 0, pady=5)
button1.grid(row = 1, column = 1, padx=20)
entry2.grid(row = 2, column = 0, pady=5)
button2.grid(row = 2, column = 1, padx=20)
entry3.grid(row = 3, column = 0, pady=5)
button3.grid(row = 3, column = 1, padx=20)
label.grid(row = 4, column = 0, pady=5)
entry4.grid(row = 5, column = 0, pady=5)
label1.grid(row = 5, column = 1, pady=5)
entry5.grid(row = 6, column = 0, pady=5)
label2.grid(row = 6, column = 1, pady=5)
button4.grid(row = 7, column = 1, padx=5)
button5.grid(row = 7, column = 0, padx=5)
button6.grid(row = 8, column = 0, padx=5)
tree.grid(row=9, column=0, pady=5)
window.mainloop()
完整代碼下載地址:
https://download.csdn.net/download/weixin_42756970/85474989
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
程序
+關(guān)注
關(guān)注
117文章
3838瀏覽量
85063 -
源代碼
+關(guān)注
關(guān)注
96文章
2953瀏覽量
69918 -
python
+關(guān)注
關(guān)注
57文章
4866瀏覽量
89801
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
榮耀9什么時(shí)候上市最新消息:華為榮耀9發(fā)布時(shí)間確定6月12日,配置、外觀設(shè)計(jì)、證件照、價(jià)格大曝光
今天,華為放出一張圖,說(shuō)下月12日有神秘新品發(fā)布,應(yīng)該就是榮耀9了。今日榮耀9的證件照也在工信部正式露臉,大致的裝備信息也浮出水面,匯集了曲面玻璃、雙攝、麒麟960等特性。下面就來(lái)各種信息大匯總!
發(fā)表于 05-26 17:39
?4482次閱讀
ATtiny單片機(jī)電子蠟燭的制作源代碼程序資料免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是ATtiny電子蠟燭的制作源代碼程序資料免費(fèi)下載。
發(fā)表于 02-14 08:00
?18次下載
OPPO Reno證件照曝光,“鍘刀式”前置攝像頭搶眼
隨著發(fā)布時(shí)間的臨近,關(guān)于該機(jī)的消息越來(lái)越多,繼上周該機(jī)的標(biāo)準(zhǔn)版入網(wǎng)工信部后,現(xiàn)在有最新消息,該機(jī)的證件照首次得到確認(rèn)。
華為Mate20X5G證件照公布 業(yè)界首款SA/NSA5G雙模手機(jī)
7月4日消息,工信部公布了華為Mate 20 X 5G證件照(型號(hào)為EVR-AN00),這是國(guó)行首款獲得5G終端電信進(jìn)網(wǎng)許可證的智能手機(jī)。
華碩ROG4游戲手機(jī)已經(jīng)入網(wǎng),配置信息和證件照均已公布
據(jù)數(shù)碼博主爆料,華碩ROG4游戲手機(jī)已經(jīng)入網(wǎng),配置信息和證件照均已公布,我們來(lái)看看。 圖源:微博 華碩ROG4游戲手機(jī)采用6.78英寸OLED屏幕,側(cè)邊有一個(gè)鮮艷的紅色肩鍵,后置采用橫排三攝,主
Python版警察抓小偷游戲源代碼
Python版警察抓小偷游戲源代碼,有多個(gè)難度級(jí)別,直接運(yùn)行g(shù)ame.py,輸入難度級(jí)別(1-13)。不同的難度等級(jí)對(duì)應(yīng)不同的圖形。
努比亞Flip 5G折疊屏手機(jī)證件照首曝,即將國(guó)內(nèi)發(fā)售
近日,匿名科技公司于MWC2024上發(fā)布的努比亞Flip 5G折疊屏手機(jī)已在工業(yè)和信息化部網(wǎng)站上展示出其證件照片,預(yù)示著此款新品將在國(guó)內(nèi)市場(chǎng)即將推出。
華為云 Flexus X 實(shí)例部署安裝 HivisionIDPhoto 一個(gè)輕量級(jí)的 AI 證件照制作算法
背景 最近有一個(gè)開(kāi)源項(xiàng)目非常火,就是 HivisionIDPhotos 一個(gè)輕量級(jí)的 AI 證件照制作算法 github 倉(cāng)庫(kù) https://github.com/Zeyi-Lin
原來(lái)他們也認(rèn)不出你的證件照!人證比對(duì)一體機(jī)提高識(shí)別準(zhǔn)確度
最近,天波小編到澳門(mén)旅游,過(guò)關(guān)時(shí)海關(guān)工作人員愣是對(duì)著我的證件看了又看,可能是覺(jué)得真人和證件照差太多了,身份核驗(yàn)花了很長(zhǎng)時(shí)間。這真不是個(gè)例,很多人都吐槽自己拍的證件照丑爆了,真人跟照片有時(shí)候簡(jiǎn)直像換了
Python證件照制作小程序源代碼
評(píng)論