pyther : pylingwindows api
pyqt
pyautogui
imagegrab 모듈의 aimagegrab 모듈 imagegrab module은 간단합니다. , 하지만 효율성은 다소 낮습니다. windows API빠르지만 사용하기 복잡한 Windows API를 호출하세요. 사용하기 더 좋은 PyQt가 있으므로 여기서는 자세히 설명하지 않겠습니다. PyQtPyQt는 Windows API를 호출하는 것보다 훨씬 간단하며, 빠른 속도, 창이 차단되어도 가져올 창을 지정할 수 있는 기능 등 Windows API의 많은 장점을 가지고 있습니다. 창이 최소화된 상태에서는 스크린샷을 찍을 수 없으니 주의하세요.
먼저 창 핸들을 구해야 합니다.import time import numpy as np from PIL import ImageGrab img = ImageGrab.grab(bbox=(100, 161, 1141, 610)) img = np.array(img.getdata(), np.uint8).reshape(img.size[1], img.size[0], 3)프로그램은 창의 hwnd와 제목을 인쇄합니다. 제목과 함께 스크린샷을 찍을 수 있습니다.
import win32gui hwnd_title = dict() def get_all_hwnd(hwnd,mouse): if win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd): hwnd_title.update({hwnd:win32gui.GetWindowText(hwnd)}) win32gui.EnumWindows(get_all_hwnd, 0) for h,t in hwnd_title.items(): if t is not "": print(h, t)pyautoguipyautogui는 비교적 간단하지만 프로그램을 받기 위한 창을 지정할 수 없기 때문에 창을 차단할 수는 없지만 스크린샷의 위치를 지정할 수는 있지만 스크린샷을 찍는 데 걸리는 시간은 0.04초로 기존보다 약간 느립니다. PyQt이지만 속도도 매우 빠릅니다.
from PyQt5.QtWidgets import QApplication from PyQt5.QtGui import * import win32gui import sys hwnd = win32gui.FindWindow(None, 'C:\Windows\system32\cmd.exe') app = QApplication(sys.argv) screen = QApplication.primaryScreen() img = screen.grabWindow(hwnd).toImage() img.save("screenshot.jpg")Python 관련 기술 기사를 더 보려면
Python Tutorial
칼럼을 방문하여 알아보세요!위 내용은 Python에서 스크린샷을 찍는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!