Python证件照制作小程序源代码,可一键修改证件照背景及大小,采用removebg在线抠图工具进行自动抠图,程序中已提供默认apiKey(g79GjuedecMLVVwkfXWSLv26)。直接运行程序即可一键制作证件照。


核心程序代码
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:
# 显示错误信息
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-key
moren = tk.StringVar(value='g79GjuedecMLVVwkfXWSLv26') #默认apiKey
entry5 = 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
-
程序
+关注
关注
117文章
3817浏览量
82222 -
源代码
+关注
关注
96文章
2949浏览量
67677 -
python
+关注
关注
56文章
4822浏览量
85917
发布评论请先 登录
荣耀9什么时候上市最新消息:华为荣耀9发布时间确定6月12日,配置、外观设计、证件照、价格大曝光
OPPO Reno证件照曝光,“铡刀式”前置摄像头抢眼
华为Mate20X5G证件照公布 业界首款SA/NSA5G双模手机
努比亚Flip 5G折叠屏手机证件照首曝,即将国内发售
华为云 Flexus X 实例部署安装 HivisionIDPhoto 一个轻量级的 AI 证件照制作算法

原来他们也认不出你的证件照!人证比对一体机提高识别准确度


半导体芯片需要做哪些测试
首先我们需要了解芯片制造环节做⼀款芯片最基本的环节是设计->流片->封装->测试,芯片成本构成⼀般为人力成本20%,流片40%,封装35%,测试5%(对于先进工艺,流片成本可能超过60%)。测试其实是芯片各个环节中最“便宜”的一步,在这个每家公司都喊着“CostDown”的激烈市场中,人力成本逐年攀升,晶圆厂和封装厂都在乙方市场中“叱咤风云”,唯独只有测试显

解决方案 | 芯佰微赋能示波器:高速ADC、USB控制器和RS232芯片——高性能示波器的秘密武器!
示波器解决方案总述:示波器是电子技术领域中不可或缺的精密测量仪器,通过直观的波形显示,将电信号随时间的变化转化为可视化图形,使复杂的电子现象变得清晰易懂。无论是在科研探索、工业检测还是通信领域,示波器都发挥着不可替代的作用,帮助工程师和技术人员深入剖析电信号的细节,精准定位问题所在,为创新与发展提供坚实的技术支撑。一、技术瓶颈亟待突破性能指标受限:受模拟前端

硬件设计基础----运算放大器
1什么是运算放大器运算放大器(运放)用于调节和放大模拟信号,运放是一个内含多级放大电路的集成器件,如图所示:左图为同相位,Vn端接地或稳定的电平,Vp端电平上升,则输出端Vo电平上升,Vp端电平下降,则输出端Vo电平下降;右图为反相位,Vp端接地或稳定的电平,Vn端电平上升,则输出端Vo电平下降,Vn端电平下降,则输出端Vo电平上升2运算放大器的性质理想运算

ElfBoard技术贴|如何调整eMMC存储分区
ELF 2开发板基于瑞芯微RK3588高性能处理器设计,拥有四核ARM Cortex-A76与四核ARM Cortex-A55的CPU架构,主频高达2.4GHz,内置6TOPS算力的NPU,这一设计让它能够轻松驾驭多种深度学习框架,高效处理各类复杂的AI任务。

米尔基于MYD-YG2LX系统启动时间优化应用笔记
1.概述MYD-YG2LX采用瑞萨RZ/G2L作为核心处理器,该处理器搭载双核Cortex-A55@1.2GHz+Cortex-M33@200MHz处理器,其内部集成高性能3D加速引擎Mail-G31GPU(500MHz)和视频处理单元(支持H.264硬件编解码),16位的DDR4-1600/DDR3L-1333内存控制器、千兆以太网控制器、USB、CAN、

运放技术——基本电路分析
虚短和虚断的概念由于运放的电压放大倍数很大,一般通用型运算放大器的开环电压放大倍数都在80dB以上。而运放的输出电压是有限的,一般在10V~14V。因此运放的差模输入电压不足1mV,两输入端近似等电位,相当于“短路”。开环电压放大倍数越大,两输入端的电位越接近相等。“虚短”是指在分析运算放大器处于线性状态时,可把两输入端视为等电位,这一特性称为虚假短路,简称

飞凌嵌入式携手中移物联,谱写全国产化方案新生态
4月22日,飞凌嵌入式“2025嵌入式及边缘AI技术论坛”在深圳成功举办。中移物联网有限公司(以下简称“中移物联”)携OneOS操作系统与飞凌嵌入式共同推出的工业级核心板亮相会议展区,操作系统产品部高级专家严镭受邀作《OneOS工业操作系统——助力国产化智能制造》主题演讲。

ATA-2022B高压放大器在螺栓松动检测中的应用
实验名称:ATA-2022B高压放大器在螺栓松动检测中的应用实验方向:超声检测实验设备:ATA-2022B高压放大器、函数信号发生器,压电陶瓷片,数据采集卡,示波器,PC等实验内容:本研究基于振动声调制的螺栓松动检测方法,其中低频泵浦波采用单频信号,而高频探测波采用扫频信号,利用泵浦波和探测波在接触面的振动声调制响应对螺栓的松动程度进行检测。通过螺栓松动检测

MOS管驱动电路——电机干扰与防护处理
此电路分主电路(完成功能)和保护功能电路。MOS管驱动相关知识:1、跟双极性晶体管相比,一般认为使MOS管导通不需要电流,只要GS电压(Vbe类似)高于一定的值,就可以了。MOS管和晶体管向比较c,b,e—–>d(漏),g(栅),s(源)。2、NMOS的特性,Vgs大于一定的值就会导通,适合用于源极接地时的情况(低端驱动),只要栅极电压达到4V或10V就可以

压敏(MOV)在电机上的应用剖析
一前言有刷直流电机是一种较为常见的直流电机。它的主要特点包括:1.结构相对简单,由定子、转子、电刷和换向器等组成;2.通过电刷与换向器的接触来实现电流的换向,从而使电枢绕组中的电流方向周期性改变,保证电机持续运转;3.具有调速性能较好等优点,可以通过改变电压等方式较为方便地调节转速。有刷直流电机在许多领域都有应用,比如一些电动工具、玩具、小型机械等。但它也存

硬件原理图学习笔记
这一个星期认真学习了硬件原理图的知识,做了一些笔记,方便以后查找。硬件原理图分为三类1.管脚类(gpio)和门电路类输入输出引脚,上拉电阻,三极管与门,或门,非门上拉电阻:正向标志作用,给悬空的引脚一个确定的状态三极管:反向三极管(gpio输出高电平,NP两端导通,被控制端导通,电压为0)->NPN正向三极管(gpio输出低电平,PN两端导通,被控制端导通,

TurMass™ vs LoRa:无线通讯模块的革命性突破
TurMass™凭借其高传输速率、强大并发能力、双向传输、超强抗干扰能力、超远传输距离、全国产技术、灵活组网方案以及便捷开发等八大优势,在无线通讯领域展现出强大的竞争力。

RZT2H CR52双核BOOT流程和例程代码分析
RZT2H是多核处理器,启动时,需要一个“主核”先启动,然后主核根据规则,加载和启动其他内核。本文以T2H内部的CR52双核为例,说明T2H多核启动流程。

干簧继电器在RF信号衰减中的应用与优势
在电子测试领域,RF(射频)评估是不可或缺的一部分。无论是研发阶段的性能测试,还是生产环节的质量检测,RF测试设备都扮演着关键角色。然而,要实现精准的RF评估,测试设备需要一种特殊的电路——衰减电路。这些电路的作用是调整RF信号的强度,以便测试设备能够准确地评估RF组件和RF电路的各个方面。衰减器的挑战衰减器的核心功能是校准RF信号的强度。为了实现这一点,衰

ElfBoard嵌入式教育科普|ADC接口全面解析
当代信息技术体系中,嵌入式系统接口作为数据交互的核心基础设施,构成了设备互联的神经中枢。基于标准化通信协议与接口规范的技术架构,实现了异构设备间的高效数据交换与智能化协同作业。本文选取模数转换接口ADC作为技术解析切入点,通过系统阐释其工作机理、性能特征及重要参数,为嵌入式学习者爱好者构建全维度接口技术认知框架。
评论