agencies

파이썬 프로그래밍 (이미지 실행파일) 본문

Ⅰ. 프로그래밍

파이썬 프로그래밍 (이미지 실행파일)

agencies 2024. 11. 5. 22:42

간단하게 exe 파일을 실행하면 이미지가 나타나는 프로그램을 만들어보았습니다.

이전에는 img 파일을 외부에서 가지고오느랴 방화벽이 차단을 했는데,

이번에는 exe 생성 시 함께 만들어지도록 해보았습니다.

 

 

소스코드

from tkinter import Tk, Canvas
from PIL import Image, ImageTk
import tkinter.messagebox as messagebox
import os
import sys

def resource_path(relative_path):
    """ Get absolute path to resource, works for PyInstaller """
    base_path = getattr(sys, '_MEIPASS', os.path.abspath("."))
    return os.path.join(base_path, relative_path)

def display_image(image_path):
    # Tkinter 창 생성 (닫기 버튼 제거)
    root = Tk()
    root.overrideredirect(True)

    # 창을 항상 위에 유지
    root.wm_attributes("-topmost", 1)

    # 이미지 열기
    image = Image.open(image_path)

    # 이미지 리사이즈
    resized_image = image.resize((400, 700))
    photo = ImageTk.PhotoImage(resized_image)

    # Canvas 생성
    canvas = Canvas(root, width=400, height=700)
    canvas.pack()

    # 이미지를 Canvas에 배치
    canvas.create_image(0, 0, anchor="nw", image=photo)

    # 창 크기 설정 (화면 중앙으로 배치)
    w = 400
    h = 700
    x = (root.winfo_screenwidth() - w) // 2
    y = (root.winfo_screenheight() - h) // 2
    root.geometry(f"{w}x{h}+{x}+{y}")

    def sh_msgbox(event):
        # 클릭 이벤트 (메시지 박스 표시)
        messagebox.showinfo("땅콩잼버", "버터: 왕왕!")

    # Tkinter 창에 클릭 이벤트 바인딩
    root.bind("<Button-1>", sh_msgbox)

    # Tkinter 창 실행
    root.mainloop()

# 이미지 파일 경로
image_path = resource_path("butter.jpg")
# 이미지 표시
display_image(image_path)

 

 

이미지를 준비해주시고

저는 butter.jpg를 파이썬 프로그램과 같은 경로에 두었습니다.

 

 

pyinstaller 를 설치하신 후 cmd에서 다음과 같이 입력합니다.

pyinstaller --onefile --noconsole --add-data "butter.jpg;." a.py

버터.zip
4.65MB
버터.z01
19.53MB