|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- # import uuid
- import datetime
- from PIL import Image, ImageDraw,ImageFont,ImageTk
- import qrcode
- import tkinter as tk
- import tkinter.ttk as ttk
- class Application(tk.Tk):
- def __init__(self):
- super().__init__()
- self.title("工卡制作")
- self.geometry("300x300")
- self.init_widgets()
- def draw_pic(self):
- image = Image.new("RGB", (402, 603), (240, 240, 240))
- draw = ImageDraw.Draw(image)
- head_font = ImageFont.truetype('simsun.ttc', 25, encoding='unic')
- color = 'black'
- font = ImageFont.truetype('simsun.ttc', 20, encoding='unic')
- logo = Image.open('11.jpg')
- image.paste(logo, (0, 0))
- company = "XXXXXXXXXX有限公司"
- draw.text((25, 100), company, fill=color, font=head_font)
- photo = Image.open('33.jpg')
- image.paste(photo, (60, 150))
- # uid = uuid.uuid4().hex[:8].upper()
- uid = datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S')
- # print(uid)
- name = self.txt_username.get()
- draw.text((60, 400), f"姓名:{name}", fill=color, font=font)
- gender = self.var.get()
- draw.text((60, 450), f"性别:{gender}", fill=color, font=font)
- dept = self.txt_dept.get()
- draw.text((60, 500), f"部门:{dept}", fill=color, font=font)
- title = self.txt_title.get()
- draw.text((60, 550), f"职位:{title}", fill=color, font=font)
- qr = qrcode.make(f"{uid}~{name}")
- qr = qr.resize((120, 120))
- image.paste(qr, (250, 400))
- draw.rectangle(((0, 0), (400, 600)), fill=None, outline='#337ab7', width=5)
- image.show()
- image.save(f"{uid}.png")
- def init_widgets(self):
- photo = ImageTk.PhotoImage(Image.open("bg.jpg"))
- self.lbl_img = tk.Label(self, image=photo, width=300, height=50)
- self.lbl_img.image = photo
- self.lbl_img.pack()
- self.frame = tk.Frame(self)
- self.lbl_username = tk.Label(self.frame, text="姓名:", anchor=tk.W)
- self.lbl_username.pack(fill=tk.X)
- self.txt_username = tk.Entry(self.frame)
- self.txt_username.pack(fill=tk.X)
- self.lbl_gender = tk.Label(self.frame, text="性别:", anchor=tk.W)
- self.lbl_gender.pack(fill=tk.X)
- self.var = tk.StringVar()
- self.txt_gender = ttk.Combobox(self.frame,textvariable=self.var,value=('男','女'))
- self.txt_gender.pack(fill=tk.X)
- self.lbl_dept = tk.Label(self.frame, text="部门:", anchor=tk.W)
- self.lbl_dept.pack(fill=tk.X)
- self.txt_dept = tk.Entry(self.frame)
- self.txt_dept.pack(fill=tk.X)
- self.lbl_title = tk.Label(self.frame, text="职位:", anchor=tk.W)
- self.lbl_title.pack(fill=tk.X)
- self.txt_title = tk.Entry(self.frame)
- self.txt_title.pack(fill=tk.X)
- self.btn_login = tk.Button(self.frame, text="制作", width=16,command=self.draw_pic)
- self.btn_login.pack(side=tk.LEFT, pady=10)
- self.btn_cancel = tk.Button(self.frame, text="取消", width=16, command=lambda: self.destroy())
- self.btn_cancel.pack(side=tk.RIGHT, pady=10)
- self.frame.pack(padx=20, pady=5, fill=tk.X)
- if __name__ == "__main__":
- app = Application()
- app.mainloop()
复制代码 |
|