Skip to content
toylee blog
toylee blog

컴퓨터·IT 문제 해결과 최신 기술 정보

  • 홈
  • 컴퓨터 활용
  • 프로그래밍
    • 파이썬
    • 자바(Java)
    • Flutter
    • HTML
    • Linux
    • 워드프레스
  • 맥북
  • IT 일반
  • 블로그 소개
  • 문의하기
toylee blog

컴퓨터·IT 문제 해결과 최신 기술 정보

python tkinter 디지털 서명 패드 만들기

toylee, 2023년 07월 09일

디지털 서명은 현대의 디지털 시대에서 중요한 역할을 합니다. 기존의 종이 위에 서명을 하는 방식에서 벗어나, 전자적인 형태로 서명을 생성하고 저장할 수 있는 디지털 서명 패드는 다양한 분야에서 사용되고 있습니다. 이번 글에서는 Python의 Tkinter 라이브러리를 활용하여 간단한 디지털 서명 패드를 만드는 방법에 대해 알아보겠습니다.

[목차]

  • 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()
 
Colored by Color Scripter
cs

실행화면

이 코드를 실행하면 Tkinter를 사용하여 디지털 서명 패드를 만들 수 있습니다. 패드에 서명을 하고 “서명 저장” 버튼을 클릭하면 signature.png라는 이름의 이미지 파일로 서명이 저장됩니다. 해당 파일은 실행한 스크립트와 같은 위치에 저장됩니다.

[관련글]

AWS PyQt6 활용 클라우드 네이티브 GUI 구축
파이썬 주석 처리 방법 및 사용 이유

PyQt6를 사용한 GUI 애플리케이션 개발과 DevOps

PyQt6 Kubernetes 사용 클라우드 네이티브 GUI 구축

파이썬

글 탐색

Previous post
Next post

Related Posts

파이썬

파이썬 for문 – 반복문

2023년 06월 30일

for문은 반복적으로 수행해야 할 일이 있을 때 사용하는 반복문으로, 리스트, 튜플, 문자열과 같은 순회 가능한(iterable) 객체들을 순회하면서 반복적으로 수행됩니다. 이번 글에서는 파이썬 for문 – 반복문 에 대해 알아보겠습니다.

Read More
파이썬

Pyqt6 PyTest GUI 테스트 자동화

2023년 05월 26일

많은 위젯을 사용시 GUI 오류를 확인하는 것은 쉽지 않습니다. 이때 자동화된 테스팅 도구가 PyTest입니다. 그럼 같이 Pyqt6 PyTest GUI 테스트 자동화 방법에 대해서 공해 보겠습니다.

Read More
파이썬

python tkinter Label

2023년 05월 11일

파이썬 에서는 다양한 위젯(Widget)을 제공합니다. python tkinter Label 위젯에 대해서 자세히 알아보려 합니다. 흔히 텍스트만 보여주는 것이 아니라 이미지를 넣을 수도 있고, 폰트 설정 및 색상 조절도 가능합니다.

Read More

최신 글

  • 기본 HTML 문서 구조 이해하기: 웹페이지 뼈대 작성 요령
  • 워드프레스 플러그인 과다 설치가 위험한 이유와 관리 요령
  • 파이썬 logging 기본 패턴: 실무에서 바로 쓰는 로그 설정과 파일 저장 방법
  • 윈도우 시작프로그램 정리 체크리스트: 부팅 속도 높이는 실무 요령
  • 카페 작업용 맥북 액세서리 추천 및 무게별 조합 요령

최신 댓글

보여줄 댓글이 없습니다.

보관함

  • 2026년 10월
  • 2026년 9월
  • 2026년 8월
  • 2026년 2월
  • 2025년 7월
  • 2025년 6월
  • 2025년 5월
  • 2025년 4월
  • 2025년 3월
  • 2025년 2월
  • 2025년 1월
  • 2024년 12월
  • 2024년 11월
  • 2024년 8월
  • 2024년 6월
  • 2024년 5월
  • 2024년 3월
  • 2024년 2월
  • 2023년 11월
  • 2023년 9월
  • 2023년 8월
  • 2023년 7월
  • 2023년 6월
  • 2023년 5월
  • 2023년 4월
  • 2023년 3월
  • 2023년 2월

카테고리

  • Flutter
  • HTML
  • IT 일반
  • Linux
  • 맥북
  • 워드프레스
  • 자바(Java)
  • 컴퓨터 활용
  • 파이썬
  • 프로그래밍

사이트 안내

  • 블로그 소개
  • 문의하기
  • 개인정보 처리방침
©2026 toylee blog | WordPress Theme by SuperbThemes