📌 파이썬 그림판 GUI 만들기 (클립보드 붙여넣기 지원)
파이썬 Tkinter
를 이용하면 간단한 그림판을 직접 만들 수 있습니다.
여기에 색상 선택, 도형 그리기, 클립보드 붙여넣기까지 추가해보겠습니다.
Tkinter 기본 구조
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root,bg="white",width=800,height=600)
canvas.pack()
root.mainloop()
실행하면 흰색 캔버스가 열립니다. 이제 기능을 하나씩 붙여봅니다.
선 그리기
def start_draw(self,event):
self.old_x,self.old_y=event.x,event.y
def drawing(self,event):
if self.old_x and self.old_y:
self.canvas.create_line(self.old_x,self.old_y,event.x,event.y,
fill=self.pen_color,width=self.pen_width.get())
self.old_x,self.old_y=event.x,event.y
색상 선택 & 미리보기
def choose_color(self):
color=colorchooser.askcolor()[1]
if color:
self.pen_color=color
self.color_preview.config(bg=self.pen_color)
도형(사각형/원)
def start_draw(self,event):
self.old_x,self.old_y=event.x,event.y
if self.draw_mode=="rect":
self.shape_id=self.canvas.create_rectangle(event.x,event.y,event.x,event.y,
outline=self.pen_color,width=self.pen_width.get())
elif self.draw_mode=="oval":
self.shape_id=self.canvas.create_oval(event.x,event.y,event.x,event.y,
outline=self.pen_color,width=self.pen_width.get())
클립보드 붙여넣기
def paste_clipboard(self,event=None):
try:
img=ImageGrab.grabclipboard()
if isinstance(img,Image.Image):
img.thumbnail((400,400))
self.imgtk=ImageTk.PhotoImage(img)
self.canvas.create_image(100,100,image=self.imgtk,anchor="nw")
self.image.paste(img,(100,100))
else:
messagebox.showwarning("경고","클립보드에 이미지 없음")
except:
messagebox.showerror("오류","불러오기 실페")
저장 기능
def save_image(self):
file_path=filedialog.asksaveasfilename(defaultextension=".png",
filetypes=[("PNG","*.png")])
if file_path:
self.image.save(file_path)
messagebox.showinfo("저장","완료: "+file_path)
실행 화면 & 마무리
실행 화면
이렇게 만든 프로그램은 단순 낙서판 이상으로 활용이 가능합니다. 필기 메모, 이미지 붙여넣기 후 강조 표시 같은 작업에도 괜찮습니다. 완벽히 매끄럽진않지만 배우는 과정에서 재미있고 직접 만든 그림판이 돌아가는 게 뿌듯합니다. 더 발전시키면 자동저장, 브러시 스타일 같은 것도 추가할 수 있겠죠.
이렇게 만든 프로그램은 단순 낙서판 이상으로 활용할 수 있습니다. 메모, 이미지 붙여넣기 후 강조 표시 같은 작업에도 유용합니다. 더 발전시키면 자동저장이나 브러시 스타일 같은 것도 넣을 수 있습니다.
반응형