你如何在 tkinter 中获取用户签名 python

How do you take a user's signature in tkinter python

我无法想出一个关于如何接受用户签名的概念。用户会 "draw" 在屏幕上使用鼠标或手指(如果他们有触控设备)。我最初考虑使用 canvas 小部件,尽管这可能太有限,因为我需要将其保存为 png/jpg。有没有人知道如何执行此操作的方法或工作示例?

这是一个示例代码:

from tkinter import *
from PIL import Image, ImageDraw

tk = Tk()
cvs = Canvas(tk, width=500,height=500)
cvs.pack()

img = Image.new('RGB',(500,500),(255,255,255))
draw = ImageDraw.Draw(img)

mousePressed = False
last=None

def press(evt):
    global mousePressed
    mousePressed = True
def release(evt):
    global mousePressed
    mousePressed = False
cvs.bind_all('<ButtonPress-1>', press)
cvs.bind_all('<ButtonRelease-1>', release)

def finish():
    img.save('img.png')
    tk.destroy()
Button(tk,text='done',command=finish).pack()

def move(evt):
    global mousePressed, last
    x,y = evt.x,evt.y
    if mousePressed:
        if last is None:
            last = (x,y)
            return
        draw.line(((x,y),last), (0,0,0))
        cvs.create_line(x,y,last[0],last[1])
        last = (x,y)
    else:
        last = (x,y)

cvs.bind_all('<Motion>', move)

tk.mainloop()

检查 raspberry pi 3 python 3.5.3。完美运行。希望对您有所帮助!