丟掉截圖軟件,讓 Python 幫你搞定

今天來介紹下截圖的N種方法,有了它,可以丟掉截圖軟件了。
1.PyQt QApplication
在PyQt中,QScreen類并不直接存在。但是,你可以使用QApplication類的primaryScreen()方法來獲取屏幕對象,然后使用grabWindow()方法來進(jìn)行截圖操作。
下面是一個(gè)簡單的示例代碼,演示如何在PyQt中進(jìn)行截圖操作:
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtGui import QPixmap
app = QApplication(sys.argv)
# 獲取主屏幕對象
screen = app.primaryScreen()
# 進(jìn)行截圖操作
pixmap = screen.grabWindow(0) # 0表示截取整個(gè)屏幕,你也可以傳入特定窗口的ID
# 將截圖保存為文件
pixmap.save('screenshot.png', 'png')
# 也可以顯示在界面上
# pixmap.show()
sys.exit(app.exec_())在這個(gè)示例中,首先創(chuàng)建了一個(gè)QApplication實(shí)例,然后通過primaryScreen()方法獲取主屏幕對象,接著使用grabWindow()方法對整個(gè)屏幕進(jìn)行截圖操作,并將結(jié)果保存為文件。你也可以根據(jù)需要修改代碼來實(shí)現(xiàn)自定義的截圖功能。
2.PyAutoGUI
你還可以使用PyAutoGUI庫來進(jìn)行屏幕截圖操作。PyAutoGUI是一個(gè)Python庫,可以模擬鼠標(biāo)和鍵盤操作,并且也提供了截圖的功能。
PyAutoGUI是一個(gè)Python的跨平臺(tái)的模塊,可以控制鼠標(biāo)和鍵盤,創(chuàng)建GUI自動(dòng)化腳本,以及處理字符串和圖像。它可以用于自動(dòng)化GUI測試,比如填寫表單、點(diǎn)擊按鈕等。
下面是一個(gè)簡單的示例代碼,演示如何使用PyAutoGUI庫進(jìn)行屏幕截圖:
import pyautogui
# 截取整個(gè)屏幕
screenshot = pyautogui.screenshot()
# 保存截圖到文件
screenshot.save('screenshot.png')在這個(gè)示例中,我們首先使用pyautogui.screenshot()函數(shù)來進(jìn)行屏幕截圖操作,然后將結(jié)果保存為文件。
另外,PyAutoGUI還提供了一些其他的截圖函數(shù),比如pyautogui.screenshot(region=(x, y, width, height))可以用來截取指定區(qū)域的屏幕,更加靈活地滿足你的需求。
3.Pillow和opencv
除了PyQt和PyAutoGUI外,還有其他一些Python庫可以用來進(jìn)行屏幕截圖操作,例如Pillow(Python Imaging Library)和opencv-python。
使用Pillow庫進(jìn)行截圖操作的示例代碼如下:
from PIL import ImageGrab
# 截取整個(gè)屏幕
screenshot = ImageGrab.grab()
# 保存截圖到文件
screenshot.save('screenshot.png')而使用opencv-python庫進(jìn)行截圖操作的示例代碼如下:
import cv2
import numpy as np
from PIL import ImageGrab
# 獲取屏幕截圖
screenshot = np.array(ImageGrab.grab())
# 將BGR格式轉(zhuǎn)換為RGB
screenshot = cv2.cvtColor(screenshot, cv2.COLOR_BGR2RGB)
# 顯示截圖
cv2.imshow('Screenshot', screenshot)
cv2.waitKey(0)
cv2.destroyAllWindows()這兩種方法也可以滿足你的屏幕截圖需求。選擇合適的方法取決于你的實(shí)際需求和偏好。



























