0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python证件照制作小程序源代码

汽车电子技术 来源:Python代码大全 作者: Python代码狂人 2023-02-24 10:23 次阅读

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

poYBAGP4H3aAVYyRAALnlUOXWaQ543.png

poYBAGP4H4WANRcuAATOec18iMA094.png

核心程序代码

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序
    +关注

    关注

    114

    文章

    3630

    浏览量

    79520
  • 源代码
    +关注

    关注

    94

    文章

    2926

    浏览量

    66056
  • python
    +关注

    关注

    51

    文章

    4671

    浏览量

    83457
收藏 人收藏

    评论

    相关推荐

    VBA程序源代码

    VBA程序源代码
    发表于 02-09 15:16 12次下载

    4442售饭程序源代码

    IC卡----4442售饭,程序源代码
    发表于 11-16 18:58 16次下载

    GPS程序源代码

    GPS程序源代码,有需要的朋友可以下来卡看看。
    发表于 02-18 14:59 16次下载

    波形显示电路的设计及制作(论文+源代码

    波形显示电路的设计及制作(论文+源代码
    发表于 12-11 22:52 2次下载

    gps程序源代码下载

    gps程序源代码下载
    发表于 01-10 17:04 8次下载

    标准ATmage16单片机制作电压表的原理图和源代码程序免费下载

    本文档的主要内容详细介绍的是标准ATmage16电压表制作的原理图和源代码程序免费下载。
    发表于 12-10 08:00 17次下载
    标准ATmage16单片机<b class='flag-5'>制作</b>电压表的原理图和<b class='flag-5'>源代码</b><b class='flag-5'>程序</b>免费下载

    ATtiny单片机电子蜡烛的制作源代码程序资料免费下载

    本文档的主要内容详细介绍的是ATtiny电子蜡烛的制作源代码程序资料免费下载。
    发表于 02-14 08:00 18次下载
    ATtiny单片机电子蜡烛的<b class='flag-5'>制作</b><b class='flag-5'>源代码</b><b class='flag-5'>程序</b>资料免费下载

    Python微服务开发的源代码合集免费下载

    本文档的主要内容详细介绍的是Python微服务开发的源代码合集免费下载。
    发表于 09-20 08:00 3次下载

    python文件读取的源代码免费下载

    本文档的主要内容详细介绍的是python文件读取的源代码免费下载。
    发表于 08-07 17:14 20次下载
    <b class='flag-5'>python</b>文件读取的<b class='flag-5'>源代码</b>免费下载

    使用Python按行读文件的源代码免费下载

    本文档的主要内容详细介绍的是使用Python按行读文件的源代码免费下载。
    发表于 10-22 17:57 12次下载
    使用<b class='flag-5'>Python</b>按行读文件的<b class='flag-5'>源代码</b>免费下载

    Python版警察抓小偷游戏源代码

    Python版警察抓小偷游戏源代码,有多个难度级别,直接运行game.py,输入难度级别(1-13)。不同的难度等级对应不同的图形。
    的头像 发表于 02-24 09:56 1037次阅读
    <b class='flag-5'>Python</b>版警察抓小偷游戏<b class='flag-5'>源代码</b>

    Python版超市管理系统源代码

    Python版超市管理系统源代码,基于django+mysql安装步骤
    的头像 发表于 02-24 09:59 1122次阅读
    <b class='flag-5'>Python</b>版超市管理系统<b class='flag-5'>源代码</b>

    Python编程实战(源代码)

    [源代码]Python编程实战 妙趣横生的项目之旅
    发表于 06-06 17:49 1次下载

    [源代码]Python算法详解

    [源代码]Python算法详解[源代码]Python算法详解
    发表于 06-06 17:50 0次下载

    努比亚Flip 5G折叠屏手机证件照首曝,即将国内发售

    近日,匿名科技公司于MWC2024上发布的努比亚Flip 5G折叠屏手机已在工业和信息化部网站上展示出其证件照片,预示着此款新品将在国内市场即将推出。
    的头像 发表于 02-29 14:22 412次阅读