Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 화학물질불법유통온라인감시단
- codeup
- PHP
- UKPT
- 기타정보
- 연구모임
- nurisec
- 12기
- 여행
- webhacking
- 국가정보원
- 경기팀
- 파이썬
- 프로젝트
- HTML
- 불법유통근절
- 화학물질
- UKPT level
- 대외활동
- 불법유통
- Los
- 정보보안
- 화학물질안전원
- 도구모음
- suninatas
- MITRE ATT&CK
- 국가기록원
- Service
- 웹 해킹 입문
- 국정원
Archives
- Today
- Total
agencies
파이썬 프로그래밍 (이미지 실행파일) 본문
간단하게 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
'Ⅰ. 프로그래밍' 카테고리의 다른 글
CVE 검색 및 파싱 (0) | 2024.09.20 |
---|---|
exploit-db 검색 및 파싱 (0) | 2024.09.18 |
[CodeUp] 1425 : 자리 배치 (0) | 2024.04.16 |
[CodeUp] 1420 : 3등 찾기 (0) | 2024.04.16 |
[CodeUp] 1416 : 2진수 변환 (0) | 2024.04.16 |