python证件照制作小程序源代码,可一键修改证件照背景及大小,采用removebg在线抠图工具进行自动抠图,程序中已提供默认apikey(g79gjuedecmlvvwkfxwslv26)。直接运行程序即可一键制作证件照。
核心程序代码
from pil import imagefrom removebg import removebgfrom pathlib import pathfrom tkinter import ttkfrom ttkthemes import themedtkimport tkinter as tkfrom 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: # 显示错误信息 tree.heading(#0, text=e)# 修改照片背景色def replace_bg(): api_key = entry5.get() # 在程序当前目录创建一个error.log文件来保存错误信息(必要参数) path('error.log').touch() rmbg = removebg(api_key, 'error.log') # 执行后会在 read_path 同级文件夹内生成一张 xxx_no_bg.png 的图片 rmbg.remove_background_from_img_file(img_path) img_no_bg = image.open(path(str(img_path) + '_no_bg.png')) # 创建一个新的图像,rgb代表真色彩,3通道, # color可以为颜色英文名 red 或是 十六进制颜色代码 #00ff00 new_img = image.new('rgb', img_no_bg.size, color=bg_color) # 将没有背景的图像粘贴到含背景色的图像上 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 # 返回两种格式的颜色代码,这里只保存十六进制的 _, 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)# 设置选择图片路径组件path1 = tk.stringvar()entry1 = ttk.entry(window, textvariable=path1, width=30)entry1.insert(0, '格式要求png')button1 = ttk.button(window,width=10, text = 图片路径, command = selectfilepath)# 设置选择文件保存路径组件path2 = tk.stringvar()entry2 = ttk.entry(window, textvariable=path2, width=30)button2 = ttk.button(window,width=10, text = 保存路径, command = selectdirpath)# 设置选择背景颜色组件path3 = tk.stringvar()entry3 = ttk.entry(window, textvariable=path3, width=30)button3 = ttk.button(window, text='背景颜色', command=choosecolor)# 设置图片大小,默认原图大小,格式如295x413(标准一寸)label = ttk.label(window, text='默认原图大小,若要修改请按[]内 格式,如 [295x413] (标准一寸照)', wraplength=200, style='two.tlabel')entry4 = ttk.entry(window, width=30)label1 = ttk.label(window, text='图片尺寸', style='three.tlabel')# 填写api-keymoren = tk.stringvar(value='g79gjuedecmlvvwkfxwslv26') #默认apikeyentry5 = ttk.entry(window, width=30, textvariable=moren,show=*)label2 = ttk.label(window, text='api-key', style='three.tlabel')# 添加“同时修改”按钮button4 = ttk.button(window, text = 同时修改, 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
基于单片机的LED灯光立方设计
微信投票系统开发者生态爆发,公正微信投票平台快开发上线
阿根廷一银行和Bitex合作推出比特币跨境支付平台
新型激光扫描仪可在极短时间内检测到皮肤癌
如何使用TensorFlow Hub的ESRGAN模型来在安卓app中生成超分图片
Python证件照制作小程序源代码
探讨新能源汽车双积分政策背后的隐深意
5G设备和边缘计算是推动全球通信运营商资本支出增加的关键因素
二位五通电磁阀接线
高通收购恩智浦计划就此终结
云计算与5G等新兴技术融合,推动传统企业数字化转型
关于GD32F350R8的单导联心电采集系统的介绍和分析
C语言实现面向对象的方式 C++中的class的运行原理
柔性供料器CCD视觉上料 柔性振动盘anyfeeder
深入了解开关电源BUCK电路各个元器件
惠普推Cortana智能扬声器 是其Windows 10 PC的配套设备
诺基亚财报让微软心寒 双方尚未找到互补契合点
正点原子开拓者FPGA:数码管动态显示实验
出售Agilent86108B电模块
从华为云与哈尔滨的三年探路,详解智慧供热的前因后果