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 | 31 |
Tags
- UKPT
- PHP
- Los
- 프로젝트
- webhacking
- 불법유통근절
- 경기팀
- UKPT level
- Service
- 불법유통
- 기타정보
- 국정원
- 화학물질안전원
- HTML
- 연구모임
- MITRE ATT&CK
- 화학물질불법유통온라인감시단
- suninatas
- 도구모음
- 정보보안
- codeup
- 웹 해킹 입문
- 여행
- nurisec
- 대외활동
- 국가기록원
- 화학물질
- 파이썬
- 국가정보원
- 12기
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
'Ⅰ. 프로그래밍' 카테고리의 다른 글
파이썬으로 이미지 내용을 텍스트로 추출하여 읽기 (ocr) (0) | 2024.11.28 |
---|---|
CVE 관련 정보 수집 (초안) (1) | 2024.11.19 |
CVE 검색 및 파싱 (0) | 2024.09.20 |
exploit-db 검색 및 파싱 (0) | 2024.09.18 |
[CodeUp] 1425 : 자리 배치 (0) | 2024.04.16 |