我嘗試使用 asksaveasfile 彈出保存二維碼影像視窗,但它給了我一個損壞的影像檔案。
如果你打開它會發生這種情況
我的代碼:
root = Tk()
root.geometry("400x350")
root.title("QR Code Generator")
label = Label(text="QR Code Generator", fg="black", font="NexaHeavy")
label.pack(pady=20)
link_entry = Entry()
link_entry.insert(0, 'Link')
link_entry.pack(pady=50)
name_entry = Entry()
name_entry.insert(0, 'QR Code name')
name_entry.pack(pady=50)
def savefile():
asksaveasfile(defaultextension='*.jpg', filetypes=[
("All types", '.*'),
("JPG File", ".jpg")
])
# Generate QR Code
def make():
qr_code = qrcode.make(link_entry.get())
qr_codename = (f"{name_entry.get()}.png")
qr_code.save(qr_codename, savefile())
make_button = Button(text="Make QR Code", command=make)
make_button.pack(pady=1)
root.mainloop()
uj5u.com熱心網友回復:
如果要用于asksaveasfile()選擇輸出檔案名,則不應使用以下方法構造檔案名qr_codename = (f"{name_entry.get()}.png"):
def savefile():
# return the selected file object
return asksaveasfile(defaultextension='*.jpg', filetypes=[
("All types", '.*'),
("JPG File", ".jpg")
], mode="wb") # must use binary mode for image data
# Generate QR Code
def make():
qr_codename = savefile()
if qr_codename:
qr_code = qrcode.make(link_entry.get())
qr_code.save(qr_codename)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/439065.html
