반응형
SMALL
🔍 SimpleZoom - 화면 확대 프로그램
📌 소개
SimpleZoom은 특정 화면 영역을 확대하여 보여주는 Python 기반의 프로그램입니다.
고정된 화면 영역을 실시간으로 확대하며, 마우스 휠을 이용해 배율을 조절할 수 있습니다.
또한 투명도를 조절하는 기능이 있어, 사용자에게 편리한 사용 환경을 제공합니다.
🚀 기능 소개
- ✅ 지정된 화면 영역 확대: 특정 영역을 실시간으로 캡처하여 확대된 화면을 표시합니다.
- ✅ 마우스 휠을 통한 배율 조절: 마우스 휠을 위/아래로 움직여 확대 비율을 변경할 수 있습니다.
- ✅ 투명도 조절: 슬라이더를 이용해 프로그램의 투명도를 조절할 수 있습니다.
- ✅ 단축키 지원: ESC 키를 눌러 프로그램을 종료할 수 있습니다.
🛠️ 코드 설명
아래는 SimpleZoom 프로그램의 전체 코드입니다.
📜 Python 코드
import tkinter as tk from tkinter import ttk from pyautogui import position from PIL import Image, ImageTk, ImageGrab class SimpleZoom(tk.Tk): def __init__(self): super().__init__() self.title("SimpleZoom - 화면 확대 프로그램") self.geometry("400x300") self.ratio = 4 # 확대 배율 self.new_image = None self.fixed_region = (1650, 810, 1919, 1079) # 고정된 영역 좌표 self.init_ui() self.update_zoom() def init_ui(self): self.state_label = tk.Label(self, text="X2.0 | Fixed Position") self.state_label.pack() self.label_img = tk.Label(self, image=None) self.label_img.pack() self.bind('', self.key_pressed) self.bind(' ', self.mouse_wheel) self.bind(' ', self.mouse_wheel) self.bind(' ', self.mouse_wheel) self.transparency_slider = ttk.Scale(self, from_=0.1, to=1.0, orient='horizontal', command=self.set_transparency) self.transparency_slider.set(1.0) self.transparency_slider.pack() def update_zoom(self): self.state_label.config(text=f'X{self.ratio} | Fixed Position') ss_img = ImageGrab.grab(self.fixed_region) resized_image = ss_img.resize((round((self.fixed_region[2] - self.fixed_region[0]) * self.ratio), round((self.fixed_region[3] - self.fixed_region[1]) * self.ratio)), Image.LANCZOS) self.new_image = ImageTk.PhotoImage(resized_image) self.label_img.config(image=self.new_image) self.after(100, self.update_zoom) def key_pressed(self, event): if event.keysym == "Escape": self.destroy() def mouse_wheel(self, event): if event.num == 5 or event.delta == -120: self.ratio = max(1.0, round(self.ratio - 0.1, 2)) elif event.num == 4 or event.delta == 120: self.ratio = round(self.ratio + 0.1, 2) def set_transparency(self, value): self.attributes('-alpha', float(value)) if __name__ == "__main__": app = SimpleZoom() app.mainloop()
📖 코드 설명
1️⃣ 프로그램 초기화
SimpleZoom
클래스는 Tkinter의 tk.Tk
를 상속받아 GUI 애플리케이션을 생성합니다.
초기화 시 창의 크기, 제목, 확대 배율, 고정된 영역 좌표를 설정하고 UI를 구성합니다.
2️⃣ UI 구성
- 확대된 이미지를 표시하는 라벨: 확대된 화면을 실시간으로 업데이트합니다.
- 배율 상태 표시: 현재 확대 배율을 보여주는 라벨을 표시합니다.
- 투명도 조절 슬라이더: 프로그램 창의 투명도를 조절할 수 있습니다.
3️⃣ 화면 확대 및 업데이트
update_zoom() 함수는 고정된 영역을 주기적으로 캡처하여 확대된 이미지를 표시합니다.
스크린샷을 찍고, 사용자가 설정한 배율로 이미지를 리사이징하여 GUI에 업데이트합니다.
4️⃣ 배율 조절
마우스 휠을 위/아래로 스크롤하면 확대 배율이 증가/감소하도록 구현되었습니다.
5️⃣ 투명도 조절
슬라이더를 조절하여 프로그램 창의 투명도를 조절할 수 있습니다.
💡 실행 방법
- Python이 설치된 환경에서 실행하세요.
- 필요한 라이브러리 설치:
pip install pillow pyautogui
- Python 파일을 실행하면 프로그램이 시작됩니다.
- ESC 키를 누르면 프로그램이 종료됩니다.
🖼️ 프로그램 실행 화면

🔖 태그
#Python #Tkinter #PIL #화면확대 #PythonGUI #프로그램개발 #코딩 #스크린줌
반응형
LIST