欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

對Python獲取屏幕截圖的4種方法詳解

 更新時間:2019年08月27日 15:33:08   作者:巽二  
今天小編就為大家分享一篇對Python獲取屏幕截圖的4種方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

Python獲取電腦截圖有多種方式,具體如下:

PIL中的ImageGrab模塊

windows API

PyQt

pyautogui

PIL中的ImageGrab模塊

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)

使用PIL中的ImageGrab模塊簡單,但是效率有點低,截屏一次需0.5s。

windows API

調(diào)用windows API,速度快但是使用較復(fù)雜,這里就不做詳細介紹了,因為有更好用的PyQt。

PyQt

PyQt比調(diào)用windows API簡單很多,而且有windows API的很多優(yōu)勢,比如速度快,可以指定獲取的窗口,即使窗口被遮擋。需注意的是,窗口最小化時無法獲取截圖。

首先需要獲取窗口的句柄。

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)

程序會打印窗口的hwnd和title,有了title就可以進行截圖了。

  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")

pyautogui

pyautogui是比較簡單的,但是不能指定獲取程序的窗口,因此窗口也不能遮擋,不過可以指定截屏的位置,0.04s一張截圖,比PyQt稍慢一點,但也很快了。

import pyautogui
import cv2

img = pyautogui.screenshot(region=[0,0,100,100]) # x,y,w,h
# img.save('screenshot.png')
img = cv2.cvtColor(np.asarray(img),cv2.COLOR_RGB2BGR)

以上這篇對Python獲取屏幕截圖的4種方法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python face_recognition實現(xiàn)AI識別圖片中的人物

    Python face_recognition實現(xiàn)AI識別圖片中的人物

    最近碰到了照片識別的場景,正好使用了face_recognition項目,給大家分享分享。face_recognition項目能做的很多,人臉檢測功能也是有的,是一個比較成熟的項目。感興趣的可以了解一下
    2022-01-01
  • pytest官方文檔解讀fixtures的調(diào)用方式

    pytest官方文檔解讀fixtures的調(diào)用方式

    這篇文章主要為大家介紹了pytest官方文檔解讀fixtures的調(diào)用方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Python requests庫輕松發(fā)送HTTP請求的終極指南

    Python requests庫輕松發(fā)送HTTP請求的終極指南

    在現(xiàn)代網(wǎng)絡(luò)編程中,HTTP請求是與Web服務(wù)交互的基礎(chǔ),本文將全面介紹requests庫的使用方法,從基礎(chǔ)請求到高級技巧,幫助你掌握網(wǎng)絡(luò)數(shù)據(jù)交互的核心技能
    2025-08-08
  • Python爬蟲之pandas基本安裝與使用方法示例

    Python爬蟲之pandas基本安裝與使用方法示例

    這篇文章主要介紹了Python爬蟲之pandas基本安裝與使用方法,結(jié)合實例形式分析了Python爬蟲操作中pandas的pip命令安裝與HTML、Excel等格式文件保存相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • Pytorch運行過程中解決出現(xiàn)內(nèi)存不足的問題

    Pytorch運行過程中解決出現(xiàn)內(nèi)存不足的問題

    內(nèi)存不足是很多人感到頭疼的問題,本文主要介紹了Pytorch運行過程中解決出現(xiàn)內(nèi)存不足的問題,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • 使用Python實現(xiàn)企業(yè)微信的自動打卡功能

    使用Python實現(xiàn)企業(yè)微信的自動打卡功能

    下面就通過Python程序來實現(xiàn)自動打卡,原理很簡單,用Python設(shè)置定時任務(wù),然后通過adb操作手機,完成打卡功能,感興趣的朋友跟隨小編一起看看吧
    2019-04-04
  • Python構(gòu)建高效文件管理器的完整指南

    Python構(gòu)建高效文件管理器的完整指南

    在日常工作中,我們經(jīng)常需要處理大量的壓縮文件,將它們按類別整理到不同的文件夾中,下面我們就來使用Python構(gòu)建一個功能完整的文件管理器吧
    2025-07-07
  • Python提取Pdf文件內(nèi)容的操作方法(表格、文本、圖片)

    Python提取Pdf文件內(nèi)容的操作方法(表格、文本、圖片)

    本文主要介紹了Python提取PDF內(nèi)容的方法(文本、圖像、表格),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • python實現(xiàn)樹的深度優(yōu)先遍歷與廣度優(yōu)先遍歷詳解

    python實現(xiàn)樹的深度優(yōu)先遍歷與廣度優(yōu)先遍歷詳解

    這篇文章主要介紹了python實現(xiàn)樹的深度優(yōu)先遍歷與廣度優(yōu)先遍歷,詳細分析了樹的深度優(yōu)先遍歷與廣度優(yōu)先遍歷原理及Python相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-10-10
  • Python中使用PyMySQL模塊的方法詳解

    Python中使用PyMySQL模塊的方法詳解

    Python中的pymysql模塊是用于連接MySQL數(shù)據(jù)庫的一個第三方庫,它提供了一套API,使得Python程序員能夠方便地執(zhí)行SQL語句、操作數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于Python中使用PyMySQL模塊的相關(guān)資料,需要的朋友可以參考下
    2024-08-08

最新評論