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 DB 접속 (SQLite, MySQL, PostgreSQL)

2023년 06월 15일

파이썬 PyQt6 DB SQLite MySQL PostgreSQL 접속 및 연결 방법에 대해서 파이큐티레 라이브러리를 활용하여 각각 예제를 통해서 공부해 봅시다. sqlite를 제외한 나머지는 sql 계정이 있어야 접속 가능합니다.

Read More
파이썬

PyQt6 계산기 만들기

2023년 05월 15일

프로그래밍을 배우는 많은 사람들이 자신의 첫 번째 프로그램으로 계산기를 만드는 것을 선택합니다. 그 이유는 계산기를 만들면, 파이썬에서 GUI 프로그래밍의 기본 개념을 배울 수 있기 때문입니다. 심플한 PyQt6 계산기 만들기 및 방법을 배울 것입니다.

Read More
파이썬

파이썬 프로그래밍 장점, 단점 알아보자

2023년 08월 30일

파이썬 프로그래밍 언어는 다양한 용도로 사용되는 인기가 있습니다. 그 이유는 간결하고 쉽게 이해할 수 있는 구문을 가지고 있으며, 다양한 작업을 수행하기 위한 많은 라이브러리와 모듈을 제공합니다.

Read More

답글 남기기 응답 취소

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

최신 글

  • 포토샵 단축키 모음 정리본
  • express vpn이란? 장점 및 단점
  • 안드로이드 버전 업그레이드 방법
  • 그래픽 카드 고장 증상, 해결법도 같이 알아보자
  • 그래픽카드 가격, 2025년 시세

최신 댓글

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

보관함

  • 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)
  • 파이썬
  • 프로그래밍
©2025 toylee blog · 컴퓨터, 프로그램 정보 공유 | WordPress Theme by SuperbThemes