디지털 서명은 현대의 디지털 시대에서 중요한 역할을 합니다. 기존의 종이 위에 서명을 하는 방식에서 벗어나, 전자적인 형태로 서명을 생성하고 저장할 수 있는 디지털 서명 패드는 다양한 분야에서 사용되고 있습니다. 이번 글에서는 Python의 Tkinter 라이브러리를 활용하여 간단한 디지털 서명 패드를 만드는 방법에 대해 알아보겠습니다.
Tkinter 라이브러리 설치하기
Tkinter는 Python의 표준 GUI (그래픽 사용자 인터페이스) 패키지로, 대부분의 Python 배포판에 기본적으로 포함되어 있습니다. 따라서 별도의 설치가 필요하지 않습니다.
필요한 라이브러리 가져오기
디지털 서명 패드를 만들기 위해 다음과 같은 라이브러리를 사용합니다.
from tkinter import *
from PIL import Image, ImageDraw
기본 윈도우 생성하기
Tkinter를 사용하여 기본적인 윈도우를 생성합니다.
window = Tk()
window.title("디지털 서명 패드")
캔버스 생성하기
패드를 그리기 위해 캔버스를 생성합니다.
canvas_width = 400
canvas_height = 400
canvas = Canvas(window, width=canvas_width, height=canvas_height, bg="white")
canvas.pack()
서명 기능 추가하기
마우스 이벤트를 처리하여 사용자의 서명을 받을 수 있도록 기능을 추가합니다.
def draw(event):
x, y = event.x, event.y
canvas.create_oval(x, y, x+2, y+2, fill="black")
canvas.bind("<B1-Motion>", draw)
서명 저장하기
사용자가 서명을 완료하면, 이미지 파일로 저장합니다.
def save_signature():
canvas.update()
signature_image = Image.new("RGB", (canvas_width, canvas_height), "white")
draw = ImageDraw.Draw(signature_image)
draw.rectangle([(0, 0), (canvas_width, canvas_height)], fill="white")
draw.rectangle([(10, 10), (canvas_width - 10, canvas_height - 10)], outline="black")
signature_image.save("signature.png")
save_button = Button(window, text="서명 저장", command=save_signature)
save_button.pack()
실행하기
마지막으로 생성한 윈도우를 실행합니다.
window.mainloop()
위의 단계를 따라가면 Python Tkinter를 사용하여 간단한 디지털 서명 패드를 만들 수 있습니다. 이 패드를 사용하여 사용자의 서명을 받고 저장할 수 있으며, 이를 활용하여 다양한 프로젝트나 응용 프로그램을 개발할 수 있습니다. 디지털 서명은 보안과 신뢰성을 갖춘 전자 문서 처리를 위해 중요한 도구이므로, 이를 활용하는 데에 많은 가치가 있습니다.
전체코드보기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | from tkinter import * from PIL import Image, ImageDraw def draw(event): x, y = event.x, event.y canvas.create_oval(x, y, x+2, y+2, fill=“black”) def save_signature(): canvas.update() signature_image = Image.new(“RGB”, (canvas_width, canvas_height), “white”) draw = ImageDraw.Draw(signature_image) draw.rectangle([(0, 0), (canvas_width, canvas_height)], fill=“white”) draw.rectangle([(10, 10), (canvas_width – 10, canvas_height – 10)], outline=“black”) signature_image.save(“signature.png”) window = Tk() window.title(“디지털 서명 패드”) canvas_width = 400 canvas_height = 400 canvas = Canvas(window, width=canvas_width, height=canvas_height, bg=“white”) canvas.pack() canvas.bind(“<B1-Motion>”, draw) save_button = Button(window, text=“서명 저장”, command=save_signature) save_button.pack() window.mainloop() | cs |
실행화면
이 코드를 실행하면 Tkinter를 사용하여 디지털 서명 패드를 만들 수 있습니다. 패드에 서명을 하고 “서명 저장” 버튼을 클릭하면 signature.png
라는 이름의 이미지 파일로 서명이 저장됩니다. 해당 파일은 실행한 스크립트와 같은 위치에 저장됩니다.
[관련글]
PyQt6를 사용한 GUI 애플리케이션 개발과 DevOps
PyQt6 Kubernetes 사용 클라우드 네이티브 GUI 구축