본문 바로가기
프로그래밍언어/Python

[Python] : 미니 포토샵 프로젝트 (1부)

by 오주현 2021. 11. 10.
반응형
미니 포토샵 프로젝트

- 포토샵은 사진에 효과를 주는 대표적인 소프트웨어입니다.

 

- 미니 포토샵은 JPG, BMP, PNG 등 불러오는 기능 뿐만 아니라 이미지를 확대, 축소, 회전시키고 밝기를 처리하는 기능을 구현할 수 있습니다.

 

- 미니 포토샵에서 사용할 외부 라이브러리는 이미지 매직(Image Magic)이라는 제품입니다. 먼저 다운을 받아줘야 합니다.

- 이미지 매직 라이브러리 추가

명령 프롬프트를 실행하고 pip upgrade를 해주고 Wand를 설치해 줍니다.

 

python을 실행시키고 wand.image를 임포트했을 때 아무런 메시지가 표시되지 않는다면 Wand 라이브러리가 제대로 설치된 것 입니다.

 

from tkinter.simpledialog import *

#함수 선언 부분
def displayImage() :
    pass
def func_open() :
    pass
def func_save() :
    pass
def func_exit() :
    pass
def func_zoomin() :
    pass
def func_zoomout() :
    pass
def func_mirror1() :
    pass
def func_mirror2() :
    pass
def func_rotate() :
    pass
def func_bright() :
    pass
def func_dark() :
    pass
def func_clear() :
    pass
def func_unclear() :
    pass
def func_bw() :
    pass


#전역 변수 선언 부분
window, canvas, paper = None, None, None
photo, photo2 = None, None
oriX, oriY = 0, 0

#메인 코드 부분
window = Tk()
window.geometry("250x250")
window.title("미니포토샵")

mainMenu = Menu(window)
window.config(menu = mainMenu)
photo = PhotoImage()
pLabel = Label(window, image = photo)
pLabel.pack(expand = 1, anchor = CENTER)

fileMenu = Menu(mainMenu)
mainMenu.add_cascade(label = "파일", menu = fileMenu)
fileMenu.add_command(label = "파일 열기", command = func_open)
fileMenu.add_command(label = "파일 저장", command = func_save)
fileMenu.add_separator()
fileMenu.add_command(label = "프로그램 종료", command = func_exit)

image1Menu = Menu(mainMenu)
fileMenu.add_cascade(label = "이미지 처리(1)", menu = image1Menu)
image1Menu.add_command(label = "확대", command = func_zoomin)
image1Menu.add_command(label = "축소", command = func_zoomout)
image1Menu.add_separator()
image1Menu.add_command(label = "상하 반전", command = func_mirror1)
image1Menu.add_command(label = "좌우 반전", command = func_mirror2)
image1Menu.add_command(label = "회전", command = func_rotate)

image2Menu = Menu(mainMenu)
mainMenu.add_cascade(label = "이미지 처리(2)", menu = image2Menu)
image2Menu.add_command(label = "밝게", command = func_bright)
image2Menu.add_command(label = "어둡게", command = func_dark)
image2Menu.add_separator()
image2Menu.add_command(label = "선명하게", command = func_clear)
image2Menu.add_command(label = "탁하게", command = func_unclear)
image2Menu.add_separator()
image2Menu.add_command(label = "흑백이미지", command = func_bw)

window.mainloop()

프로그램을 실행시키면 파일과 이미지처리 버튼이 있고 파일 버튼에서 불러오기, 저장, 종료, 이미지 처리1번 기능이 있습니다.

 

이미지 처리2번 버튼에서는 밝기와 선명도 기능이 들어있습니다.

 

다음 글에서 완성을 하겠습니다.

반응형

댓글