코드네임 :
[GUI🐟] 강아지 포토샵🐶✨ 본문
구이로 강아지 포토샵 만들어보기 !
필터 씌우는 것만 하려다가 코드짜다가 급 재밌어서 여러 색으로 그림그리는 것도 추가함 ㅋㄱㅋㅋㅋㅋ
+ 수정된 코드 ⬇️
( 처음 코드에서는 파일 오픈 하기 전에 reset 누르면 에러 뜨길래 아예 open_image 함수 안에 button들 grid 코드 집어넣었음)
https://vien-coding.tistory.com/68
근데 코드에 define 너무 많아서 좀,,, 뭔가 정리해주고 싶은데.. 나는 아직 코린이... 일단,, 배운 만큼 쓴 코드다.. 슬프다...
+ 그래도 궁금해서 저거 정리할 수 있나 했는데 찾아보니 lambda 함수로 뭔가를 하는 듯..
이런,, 저는 역시 아기코더....
간결한 코드와 설명을 원하신다면 아래 링크로...⬇️
https://vien-coding.tistory.com/69
(일단 비공개.. 뭔지 작성해야함..)
### 강쥐_포토샵.py ## 강아지 사진을 선택하여 필터 효과를 주거나 사진 위에 그림을 그릴 수 있는 간단한 포토샵 from tkinter import Tk, Canvas, Button, filedialog, Label from PIL import Image, ImageTk, ImageFilter window = Tk() window.title("Puppy Photoshop") def open_image(): global img, tk_img file_path = filedialog.askopenfilename(filetypes=[("Image Files", "*.png *.jpg *.jpeg")]) if file_path: img = Image.open(file_path) tk_img = ImageTk.PhotoImage(img) c.create_image(400, 250, image=tk_img) window.update() def blur(): global img, tk_img out = img.filter(ImageFilter.BLUR) tk_img = ImageTk.PhotoImage(out) c.create_image(400, 250, image=tk_img) window.update() def contour(): global img, tk_img out = img.filter(ImageFilter.CONTOUR) tk_img = ImageTk.PhotoImage(out) c.create_image(400, 250, image=tk_img) window.update() def emboss(): global img, tk_img out = img.filter(ImageFilter.EMBOSS) tk_img = ImageTk.PhotoImage(out) c.create_image(400, 250, image=tk_img) window.update() def reset(): global img, tk_img tk_img = ImageTk.PhotoImage(img) c.create_image(400, 250, image=tk_img) window.update() def paint(event): x1,y1=event.x-2,event.y-2 x2,y2=event.x+2,event.y+2 c.create_oval(x1,y1,x2,y2,fill=mycolor,width=0) def red(): global mycolor mycolor="crimson" def yellow(): global mycolor mycolor="gold" def green(): global mycolor mycolor="forestgreen" def blue(): global mycolor mycolor="royalblue" def black(): global mycolor mycolor="black" img = None tk_img = None c = Canvas(window, width=800, height=500) c.grid(row=1,columnspan=10) mycolor="black" c.bind("<B1-Motion>",paint) #파일 오픈 버튼 및 필터 버튼 open_button = Button(window, text="Open Image", command=open_image) open_button.grid(row=2, column=1) blur_button = Button(window, text="Blur", command=blur) blur_button.grid(row=2, column=4) contour_button = Button(window, text="Contour", command=contour) contour_button.grid(row=2, column=5) emboss_button = Button(window, text="Emboss", command=emboss) emboss_button.grid(row=2, column=6) reset_button = Button(window, text="Reset", command=reset) reset_button.grid(row=2, column=9) # 색깔 버튼 redB=Button(window,text="빨강",bg="crimson",fg="white",command=red) redB.grid(row=4,column=1) yellowB=Button(window,text="노랑",bg="gold",command=yellow) yellowB.grid(row=4,column=4) greenB=Button(window,text="초록",bg="forestgreen",fg="white",command=green) greenB.grid(row=4,column=5) blueB=Button(window,text="파랑",bg="royalblue",fg="white",command=blue) blueB.grid(row=4,column=6) blackB=Button(window,text="검정",bg="black",fg="white",command=black) blackB.grid(row=4,column=9) # 라벨들.. title=Label(window, text="\n✨ 강아지 포토샵 ✨", font=("맑은 고딕", 18)) title.grid(row=0,column=5) blank1=Label(window, text=" ") blank1.grid(row=3,column=5) blank2=Label(window, text=" ") blank2.grid(row=5,column=5) window.mainloop() |
좀 더 깔끔한 결과물을 원했지만,, grid로 더 이상 깔끔하게는 불가능 할거 같아서,,
우선 좀 더 배우고 고치던가 해야할 것 같긴 해서 일단!
그래도 grid로 하는데두 진짜 열심히 중심 맞추고 한거다 ㅎㅁㅎ(근데 지금 보니 버튼 왜 중심 안 맞아...ㅠ)
블러 처리 해주면 이렇게 필터 적용도 되고!
그 위에 그림도 그릴 수 있당👩🎨🖌️
Button 색깔 바꿀 때 참고한 곳!.. 근데 몹시 간단했음묭 ㅋ
https://www.delftstack.com/ko/howto/python-tkinter/how-to-change-tkinter-button-color/
파이썬 색상표~~~🎨
https://matplotlib.org/2.0.2/examples/color/named_colors.html
+ 혹시 나중에 GUI 까먹으면 보려고..
https://hcr3066.tistory.com/96
'프로그래밍 > Python' 카테고리의 다른 글
Python 기초1 (기초자료형) (0) | 2024.02.24 |
---|---|
[pygame] 쿠키런 모작 🍪✨이 맞나 근데 (0) | 2023.05.22 |
(수정1+2 lambda로 간결하게) 🐟GUI🐟로 강아지 포토샵✨ 만들기 (0) | 2023.05.18 |
[GUI🐟] 강아지 포토샵🐶✨ (수정 코드) (0) | 2023.05.18 |
[GUI🐟] 숫자 up-down 게임 만들기🔢 🎮 (0) | 2023.05.17 |