用Python进行屏幕截图,只用两行代码搞定
一、計(jì)算機(jī)中如何進(jìn)行屏幕截圖呢?
1、全屏截圖
按下鍵盤中的‘PRTSC’或者‘Print Screen’鍵,即可實(shí)現(xiàn)全屏截圖(不同鍵盤位置和名稱可能不同)。此時(shí),并不能看到效果,只是將截圖保存在粘貼板中,我們打開Word或者其它windows自帶的畫圖板工具(以畫圖板工具為例)。我們打開畫圖板直接按下‘Ctrl’+ 'V'粘貼即可。然后你可以對(duì)該圖片執(zhí)行其它操作了。
2、截取當(dāng)前活動(dòng)窗口
如何截取當(dāng)前活動(dòng)窗口的圖片呢?我們使用‘Print Screen’+ ‘Alt’組合鍵即可完成該操作。截圖快捷鍵如下所示。
二、使用Python進(jìn)行屏幕截圖
我們需要用到Python的pillow模塊中的ImageGrab類的grab()方法即可實(shí)現(xiàn),具體代碼如下:
img = ImageGrab.grab(bbox=(x, y, width, height))該方法中bbox參數(shù)中傳入需要截取圖片的區(qū)域即可。其中x、y表示截取圖片的左上角位置坐標(biāo),width、height參數(shù)中傳入截取圖片的寬度和高度。
如果是全屏幕截取,則x, y = 0, 0;width、height傳入屏幕分辨率中的寬度和高度即可。
屏幕分辨率
Python獲取屏幕分辨率并實(shí)現(xiàn)全屏截圖的方案:
1.使用pywin32模塊(需要安裝該模塊):
# 導(dǎo)入模塊import win32api, win32confrom PIL import ImageGrab# 獲取當(dāng)前分辨率下的屏幕尺寸width = win32api.GetSystemMetrics(win32con.SM_CXSCREEN)height = win32api.GetSystemMetrics(win32con.SM_CYSCREEN)# 全屏幕截圖img = ImageGrab.grab(bbox=(0, 0, width, height))# 保存截圖img.save('full_screen_img.jpg')2.使用tkinter模塊
# 導(dǎo)入模塊import tkinterfrom PIL import ImageGrab# 獲取當(dāng)前分辨率下的屏幕尺寸win = tkinter.Tk()width = win.winfo_screenwidth()height = win.winfo_screenheight()# 全屏幕截圖img = ImageGrab.grab(bbox=(0, 0, width, height))# 保存截圖img.save('full_screen_img.jpg')這樣,就完成了使用Python進(jìn)行全屏截圖的操作。其實(shí),已知需要截圖的坐標(biāo)和尺寸,只用兩行代碼就可以搞定了。
img = ImageGrab.grab(bbox=(0, 0, width, height))img.save(filename)如果要截取一部分屏幕,那么,我們?cè)谠O(shè)計(jì)軟件時(shí)只需要傳入起始坐標(biāo)點(diǎn)位置(圖片左上角位置)和圖片的寬度、高度信息就可以實(shí)現(xiàn)截取指定區(qū)域位置的圖片內(nèi)容了。
總結(jié)
以上是生活随笔為你收集整理的用Python进行屏幕截图,只用两行代码搞定的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Requests: 让 HTTP 服务人
- 下一篇: python中获取异常描述与else用法