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 스레딩(Threading) GUI 애플리케이션 작성

2023년 06월 10일

PyQt6는 파이썬에서 GUI 애플리케이션을 작성하는 데 유용한 라이브러리 중 하나입니다. PyQt6는 이벤트 루프와 같은 동작 방식으로 인해 PyQt6 스레딩(Threading) 모델에서 작동합니다.

Read More

하드 디스크 파티션 합치기

2024년 12월 07일

하드 디스크 파티션 합치기는 컴퓨터의 저장 공간 관리에 있어 중요한 과정입니다. 많은 사용자들이 하드 디스크의 용량을 최적화하고 자유로운 공간을 확보하기 위해 이러한 작업을 수행합니다. 파티션은 데이터의 조직화를 도와주지만, 때로는 여러 개의 작은 파티션이 불편함을 초래할 수 있습니다. 이러한 경우, 파티션을 합치는 것이 효율적일 수 있습니다. 이번 글에서는 하드 디스크 파티션을…

Read More
파이썬

PyQt6 QPropertyAnimation Framework

2023년 05월 25일

GUI의 기능성은 중요하지만, 눈에 띄는 시각적인 요소도 중요합니다. GUI 요소에 애니메이션과 동적인 움직임을 추가하여 시각적으로 매력적인 GUI를 만들 수 있습니다. 이 글에서는 PyQt6 QPropertyAnimation Framework 를 살펴보고 GUI 안에 움직이는 방법에 대해 같이 알아보겠습니다. 1. PyQt6 QPropertyAnimation Framework 란? PyQt6 애니메이션 프레임워크는 Qt의 애니메이션 프레임워크를 기반으로 구축되었으며, GUI에 애니메이션을 만드는…

Read More

답글 남기기 응답 취소

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

최신 글

  • 드론 비행금지구역에 대해 알아볼게요
  • cpu 온도 측정 방법
  • 포토샵 단축키 모음 정리본
  • express vpn이란? 장점 및 단점
  • 안드로이드 버전 업그레이드 방법

최신 댓글

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

보관함

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