實作思路是先獲取到當前最上面活動的視窗資訊,然后提取該視窗的名稱資訊,

【閱讀全文】
之后獲取視窗的坐標資訊,即左上角的開始坐標及右下角的結束坐標,最后直接截圖并將截圖的圖片進行展示,
其中用到了兩個第三方模塊,分別是win32gui和Pillow,安裝命令如下:
pip install Pillow
pip install win32gui
將其中使用到的三個非標準庫匯入進來,
from win32gui import * # 操作windows視窗
from PIL import ImageGrab # 操作影像
import win32con # 系統操作
初始化一個set串列存放所有活動視窗名稱,使用set型別的目的是保證所有活動視窗名稱的唯一性,
names = set()
撰寫get_window_title函式,獲取當前的所有活動視窗物件,
def get_window_title(window, nouse):
'''
獲取視窗標題函式
:param window: 視窗物件
:param nouse:
:return:
'''
if IsWindow(window) and IsWindowEnabled(window) and IsWindowVisible(window):
names.add(GetWindowText(window))
EnumWindows(get_window_title, 0)
list_ = [name for name in names if name]
for n in list_:
print('活動視窗: ', n)
輸入自己想要截圖的視窗名稱作為當前視窗,然后提取到需要截圖的視窗物件,
name = input('請輸入需要截圖的活動視窗名稱: \n')
window = FindWindow(0, name) # 根據視窗名稱獲取視窗物件
ShowWindow(window, win32con.SW_MAXIMIZE) # 將該視窗最大化
獲取該視窗的坐標資訊,開始坐標資訊和結束坐標資訊,
x_start, y_start, x_end, y_end = GetWindowRect(window)
# 坐標資訊
box = (x_start, y_start, x_end, y_end)
呼叫ImageGrab.grab()函式實作對視窗的截圖操作,
image = ImageGrab.grab(box)
在完成截圖之后展示一下截圖的效果,如果不需要展示的話就不需要添加這行代碼了,
image.show() # 圖片展示,如果截完圖需要展示則放開此項
最后一步,將截圖好的圖片保存下來,
image.save('target.png')
print('截圖已經保存完成!')
上面整個的python截圖操作就實作了,目前正在考慮怎么實作批量截圖的程序,有好的建議可以直接留言或是私信,感謝大家一直以來的支持!

【往期精彩】
怎么用python做一個解壓縮小工具...
python中最簡單的turtle繪圖:奧運五環!
知識匯總:python辦公自動化應該學習哪些內容?
python多執行緒同步售票系統解決思路...
發現幾個好玩的游戲編程平臺,與君共勉!
歡迎關注作者公眾號【Python 集中營】,專注于后端編程,每天更新技術干貨,不定時分享各類資料!轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/474813.html
標籤:Python
上一篇:基于DEM的坡度坡向分析
下一篇:python生成器
