Skip to content
toylee blog · 컴퓨터, 프로그램 정보 공유

toylee blog · 컴퓨터, 프로그램 정보 공유

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

파이썬

Pyqt6 PyTest GUI 테스트 자동화

2023년 05월 26일

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

Read More
파이썬

삼성전자 컬러 레이저 프린터 드라이버 다운로드 SL-C513W

2024년 06월 22일

프린터 구입 후 컴퓨터와 연결을 하기 위해서는 정품 드라이버가 필요합니다. 드라이버는 컴퓨터로 프린터를 사용할 수 있도록 도와주는 도구라고 생각하시면 됩니다. 삼성전자 컬러 레이저 프린터 드라이버 다운로드 를 위한 드라이버 모델을 (SL-C513W) 여러 시스템 버전으로 받을 수 있도록 글을 작성합니다.

Read More
파이썬

파이썬 기초 문법과 활용 예제

2024년 05월 07일

파이썬은 강력하고 다양한 기능을 가진 프로그래밍 언어로, 기초 문법을 이해하고 활용하는 것은 프로그래밍을 시작하는 데 있어 중요한 첫걸음입니다. 이 글에서는 파이썬의 기초 문법과 활용 예제에 대해 자세히 살펴보겠습니다. 파이썬을 공부하면서 코딩의 세계에 입문하고 싶은 분들에게 도움이 될 것이라고 기대합니다. 파이썬은 간결하고 가독성이 높아서 많은 개발자들이 선택하는 언어 중 하나입니다. 변수, 조건문, 반복문 등의 기본적인 문법을 이해하면 간단한 프로그램을 작성할 수 있으며, 더 나아가 다양한 프로젝트를 구현할 수 있게 됩니다. 또한 파이썬은 데이터 분석, 인공지능, 웹 개발 등 다양한 분야에서 활용되므로, 학습하는 가치가 크다고 할 수 있습니다. 이 문서를 통해 파이썬의 기초 문법을 이해하고 활용하는 방법을 자세히 알아보겠습니다.

Read More

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

최신 글

  • 맥북 열 관리와 쿨링 솔루션 소개
  • SQLite 데이터 백업과 복구 노하우
  • 파이썬에서 시간과 날짜 처리하기
  • 맥북 액세서리 추천 및 활용법
  • 랜섬웨어로부터 내 컴퓨터 지키는 방법

최신 댓글

  1. 윈도우 단축키 모음 Best5의 ace
  2. http https 차이의 챗GPT 란? · Working for you

보관함

  • 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
  • linux
  • macbook
  • Pc Useful Tips
  • 미분류
  • 워드프레스
  • 자바(Java)
  • 파이썬
  • 프로그래밍
©2026 toylee blog · 컴퓨터, 프로그램 정보 공유 | WordPress Theme by SuperbThemes