使用python制作一個(gè)截圖小工具
Python編程語言允許我們執(zhí)行各種任務(wù),所有這些都是在簡單模塊和短小精悍的代碼的幫助下完成的。在Python的幫助下進(jìn)行屏幕截圖就是這樣一項(xiàng)任務(wù)。
Python為我們提供了許多模塊,使我們能夠執(zhí)行不同的任務(wù)。有多種方法可以使用Python及其庫進(jìn)行屏幕截圖。
用Pyautogui模塊進(jìn)行截圖
第一種方法是使用Python提供的pyauotgui 模塊。你可以在終端窗口使用下面的命令來安裝這個(gè)模塊。
pip install pyautogui
pyautogui 模塊使用screenshot() 函數(shù),它有助于捕捉整個(gè)屏幕。之后,你可以使用save() 函數(shù)來保存圖像,或者使用imwrite() 函數(shù)與NumPy 和OpenCV 模塊一起把圖像寫到磁盤上。
詳細(xì)了解一下這兩種方法。
1.用Pyautogui模塊中的save() 函數(shù)
一旦你安裝了pyautogui 模塊,最簡單的截圖方法是使用screenshot() 函數(shù)和save() 函數(shù)。下面是一個(gè)使用這些函數(shù)的示例代碼。
示例代碼:
import pyautogui demo_image = pyautogui.screenshot() demo_image.save("demo_one.jpg")
首先,我們導(dǎo)入pyautogui 模塊。然后,我們調(diào)用screenshot() 函數(shù),該函數(shù)捕獲了屏幕的圖像。
此外,在最后一行代碼中,我們使用save() 函數(shù)和我們想保存的圖像的名稱。在這種情況下,捕獲的圖像可以通過文件名demo_one.jpg 找到。
下面是我們得到的輸出圖像。注意,你會在Jupyter筆記本或Python的同一目錄下找到這個(gè)圖像。
如果你想在捕捉圖像時(shí)有一些延遲,你可以使用time 模塊的sleep() 函數(shù)。
2.用Numpy和Opencv模塊與Pyautogui一起使用
第二種方法涉及到與pyautogui 一起使用另外兩個(gè)模塊;它們是NumPy 和OpenCV 。在第一種方法中,我們使用save() 函數(shù)來保存圖像。
但在這里,我們將使用這兩個(gè)模塊來拍攝和保存屏幕截圖。
通過在終端寫下以下命令來安裝Numpy 和OpenCV 。
pip install numpy pip install opencv-python
下面是所有模塊安裝后必須使用的代碼。
示例代碼:
#import the required modules import numpy as x import cv2 import pyautogui #use pyautogui to take screenshot demo_image = pyautogui.screenshot() #use opencv and numpy to manipulate image demo_image = cv2.cvtColor(x.array(demo_image),cv2.COLOR_RGB2BGR) #save the image using opencv cv2.imwrite("demo_two.png", demo_image)
我們首先導(dǎo)入了所需的模塊,然后使用screenshot() 函數(shù)來捕獲屏幕。然后,我們將圖像轉(zhuǎn)換為NumPy 數(shù)組,并將顏色的順序從RGB改為BGR。
這樣做是因?yàn)楫?dāng)OpenCV 讀取圖像時(shí),它要求顏色的順序是BGR而不是默認(rèn)的RGB。最后,我們使用imwrite() 函數(shù)將圖像寫到磁盤上。
這就是輸出圖像的樣子。
輸出:
以上是關(guān)于如何在Python中使用pyautogui 模塊進(jìn)行屏幕截圖的全部內(nèi)容。現(xiàn)在,我們要進(jìn)入下一個(gè)方法來做同樣的事情。
要了解更多關(guān)于pyautogui 模塊的信息,請參考這個(gè)文檔。
用Pillow模塊
使用pyautogui 模塊,默認(rèn)情況下可以捕獲整個(gè)屏幕。然而,如果我們必須捕捉屏幕的一部分,我們可以使用Pillow 模塊。
這個(gè)模塊使用另一個(gè)叫做ImageGrab 的子模塊,讓我們設(shè)置我們想要捕捉的屏幕區(qū)域的坐標(biāo)。我們使用grab() 函數(shù)來指定這些坐標(biāo)。
下面是這種方法的代碼。
示例代碼:
#Python小白學(xué)習(xí)交流群:711312441 from PIL import ImageGrab ss_coordinates = (200, 200, 600, 600) demo_image = ImageGrab.grab(ss_coordinates) demo_image.save("demo_three.jpg")
我們首先導(dǎo)入了Pillow 模塊和ImageGrab 子模塊。然后,我們?yōu)槲覀兿胍蹲降钠聊辉O(shè)置了一些坐標(biāo)。
此外,我們使用grab() 函數(shù),并將這些坐標(biāo)傳遞給該函數(shù)。然后,使用save() 方法保存捕獲的圖像。
這就是我們得到的屏幕截圖。
輸出
從本質(zhì)上講,這就是在Python中拍攝屏幕截圖的方法,即通過設(shè)置坐標(biāo)。參考該文檔以了解更多關(guān)于Pillow 模塊的信息。
用Pyscreenshot模塊
Python提供了這個(gè)叫做pyscreenshot 的模塊,其唯一的任務(wù)就是進(jìn)行截圖。要安裝這個(gè)模塊,在終端使用以下命令。
pip install pyscreenshot
一旦該模塊安裝完畢,使用這段代碼對整個(gè)屏幕進(jìn)行截圖。
示例代碼:
import pyscreenshot image_demo = pyscreenshot.grab() image_demo.save("demo_four.png")
我們首先導(dǎo)入了pyscreenshot 模塊,然后使用grab() 函數(shù)來捕獲屏幕。最后,我們使用save() 函數(shù)來保存圖像。
下面是我們得到的圖像的輸出。
輸出:
我們還可以使用這個(gè)模塊來捕捉屏幕的一部分。我們只需將所需的坐標(biāo)作為一個(gè)元組傳遞給grab() 函數(shù)。
下面是對屏幕特定部分進(jìn)行截圖的代碼。
示例代碼:
import pyscreenshot image_demo = pyscreenshot.grab(bbox=(100, 100, 500, 500)) image_demo.save("demo_five.png")
請注意,我們在代碼的第二行中傳遞了我們想要捕捉的屏幕部分的坐標(biāo)。其余的代碼與前面的代碼工作相同。
下面是捕捉到的圖像。
輸出:
注意這個(gè)模塊,pyscreenshot ,已經(jīng)不怎么用了,你最好選擇我們討論的前兩種在Python中拍攝屏幕的方法。這就是關(guān)于如何在Python中進(jìn)行屏幕截圖的全部內(nèi)容。
總結(jié)
這篇文章討論了我們?nèi)绾问褂肞ython編程語言進(jìn)行截圖。我們看到了如何使用pyautogui 模塊與save() 函數(shù)和其他模塊,如NumPy 和OpenCV 。
我們還學(xué)習(xí)了如何使用Python的Pillow 模塊來捕捉屏幕的一部分。此外,我們還看到了如何使用pyscreenshot 模塊來捕獲整個(gè)屏幕和它的一部分。
到此這篇關(guān)于使用python制作一個(gè)截圖小工具的文章就介紹到這了,更多相關(guān)python制作截圖工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Qt Quick QML-500行代碼實(shí)現(xiàn)合成大西瓜游戲
合成大西瓜游戲是前段時(shí)間比較火的小游戲,最近小編閑來無事,通過研究小球碰撞原理親自寫碰撞算法實(shí)現(xiàn)一個(gè)合成大西瓜游戲,下面小編把我的實(shí)現(xiàn)思路及核心代碼分析出來,供大家參考2021-05-05python通過tcp發(fā)送xml報(bào)文的方法
今天小編就為大家分享一篇python通過tcp發(fā)送xml報(bào)文的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12解決使用pycharm提交代碼時(shí)沖突之后文件丟失找回的方法
這篇文章主要介紹了解決使用pycharm提交代碼時(shí)沖突之后文件丟失找回的方法 ,需要的朋友可以參考下2018-08-08Python Scrapy實(shí)戰(zhàn)之古詩文網(wǎng)的爬取
本文將利用Python中Scrapy框架,實(shí)現(xiàn)爬取古詩文網(wǎng)上的詩詞數(shù)據(jù),具體包括詩詞的標(biāo)題信息。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-05-05django 外鍵創(chuàng)建注意事項(xiàng)說明
這篇文章主要介紹了django 外鍵創(chuàng)建注意事項(xiàng)說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python解析、提取url關(guān)鍵字的實(shí)例詳解
今天小編就為大家分享一篇Python解析、提取url關(guān)鍵字的實(shí)例詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12