范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Python获取屏幕截图的几种方法

  Python获取电脑截图有多种方式,具体如下:
  PIL中的ImageGrab模块
  windows API
  PyQt
  pyautogui
  使用Selenium截图 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)  # python实现全屏截图: from PIL import ImageGrab im = ImageGrab.grab() #可以添加一个坐标元组进去 im.save("F:12.png")
  使用PIL中的ImageGrab模块简单,但是效率有点低,截屏一次需0.5s。windows API
  调用windows API,速度快但是使用较复杂,这里就不做详细介绍了,因为有更好用的PyQt。import time import win32gui, win32ui, win32con, win32api def window_capture(filename):   hwnd = 0 # 窗口的编号,0号表示当前活跃窗口   # 根据窗口句柄获取窗口的设备上下文DC(Divice Context)   hwndDC = win32gui.GetWindowDC(hwnd)   # 根据窗口的DC获取mfcDC   mfcDC = win32ui.CreateDCFromHandle(hwndDC)   # mfcDC创建可兼容的DC   saveDC = mfcDC.CreateCompatibleDC()   # 创建bigmap准备保存图片   saveBitMap = win32ui.CreateBitmap()   # 获取监控器信息   MoniterDev = win32api.EnumDisplayMonitors(None, None)   w = MoniterDev[0][2][2]   h = MoniterDev[0][2][3]   # print w,h   #图片大小   # 为bitmap开辟空间   saveBitMap.CreateCompatibleBitmap(mfcDC, w, h)   # 高度saveDC,将截图保存到saveBitmap中   saveDC.SelectObject(saveBitMap)   # 截取从左上角(0,0)长宽为(w,h)的图片   saveDC.BitBlt((0, 0), (w, h), mfcDC, (0, 0), win32con.SRCCOPY)   saveBitMap.SaveBitmapFile(saveDC, filename) beg = time.time() for i in range(10):   window_capture("haha.jpg") end = time.time() print(end - beg)PyQt
  PyQt比调用windows API简单很多,而且有windows API的很多优势,比如速度快,可以指定获取的窗口,即使窗口被遮挡。需注意的是,窗口最小化时无法获取截图。
  首先需要获取窗口的句柄。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:Windowssystem32cmd.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)使用Selenium截图
  使用Selenium只能进行WEB程序截图from selenium import webdriver import time def capture(url, filename="capture.png"):   browser = webdriver.Chrome(r"C:UsersweidiaoDesktopchromedriver_win32chromedriver.exe")   browser.set_window_size(1200, 900)   browser.get(url) # Load page   browser.execute_script("""   (function () {    var y = 0;    var step = 100;    window.scroll(0, 0);    function f() {     if (y < document.body.scrollHeight) {      y += step;      window.scroll(0, y);      setTimeout(f, 50);     } else {      window.scroll(0, 0);      document.title += "scroll-done";     }    }    setTimeout(f, 1000);   })();  """)   for i in range(30):     if "scroll-done" in browser.title:       break     time.sleep(1)   beg = time.time()   for i in range(10):     browser.save_screenshot(filename)   end = time.time()   print(end - beg)   browser.close() capture("//www.xx.net")

常用的Vim操作命令整理相信大家应该都用过Linux系统中的Vim编辑器,那今天我们就来整理一下常用的Vim操作命令,虽然相关的文章大都千篇一律,但主要的目的还是自己写下来,印象会更深刻,并且方便以后查阅家用中央空调该如何选择市面上中央空调琳琅满目种类繁多,作为客户来说容易挑花眼,到最后很迷茫不知道该怎么选择,下面就跟我来一起看看吧!手把手教你如何选择适合自己的家用中央空调。一国产品牌中央空调格力和美的蚂蚁集团安全科技eKYC产品通过全球ampampquot最严ampampquot数据安全审计已在海外服务上亿人记者获悉,近期蚂蚁集团旗下安全科技ZOLOZ的eKYC产品通过SOC2Type2审计,获得安永会计师事务所出具的报告,这意味着该产品在数据安全服务安全及服务高可用等方面已达到国际超全网首播中国空气能领军品牌派沃空气能新品发布会圆满结束4月8日2000,派沃空气能重磅新品(太空舱级静音黑科技)静享A7系列地暖中央空调,全球首发,通过直播形式正式与全国消费者见面!伴随着发布会的开幕,派沃空气能新品静享A7系列地暖中W6是威马汽车世界系列一款车型设计感十足随着碳中和碳峰目标的提出,人们的环保意识越来越强,生态概念也大大提高。智能新能源汽车作为一种低碳排放交通工具,已成为实现碳中和碳峰目标的主要力量。作为中国硬技术创新的代表,威马汽车手机出货量下滑,务实消费已经来临严奇近日,包括中国信通院在内的多方数据显示,国内手机市场不振,出货量接连下滑,年轻人为什么不愿意换手机了还冲上微博热搜,引发讨论。这是因为啥?不少网友认为,目前手机创新不足,连外观iQOO手机质量可靠吗?IQOO是vivo旗下的产品,vivo和OPPO是国产手机中品控最好的两个牌子,所以他们旗下的iQOO和realme的质量也不会差,会比华为和小米好。100质量可靠,因为本人用的手电车取代油车离现实还有多远?比亚迪停止燃油汽车整车生产的消息在业界引起轩然大波。比亚迪第一百万辆新能源乘用车汉EV下线比亚迪供图停产的消息一经发布,就引发了讨论,有人借此断言燃油车的死期已近,事实真如此?中新新能源汽车4月销量公布!不进步就淘汰,反映太多现实问题不要以为你现在过得还不错,就代表以后也不会差。图片来源网络40年前你要是会开车,你就算有铁饭碗了,30年前你要是会英语和计算机,那你绝对是人才。在20年前,联通和移动光在过年那一天涨价潮持续,多家车企再调价4月7日,特斯拉美国官网显示,特斯拉部分车型再次涨价,其中美国Model3LongRange(长续航版)和Performance(高性能版版)车型的售价均有不同程度的涨幅。具体来看对京东有极强控制欲的刘强东为什么辞职?奶茶妹妹又在干嘛?京东创始人刘强东曾经不止一次这样说过如果失去了京东的控制权,就会第一时间将京东卖掉,拿钱走人。对自己创办的京东有如此强控制欲的刘强东,前几天突然辞任集团CEO,决定放权,颇有一种不
手机老号不想换,有什么大流量还便宜的套餐能办理吗?携号转网吧,现在三网对老用户很不友好,我今年年初办的携号转网,给你推荐几个套餐移动9元月,40G流量,1300分钟通话。移动20元月,80G流量,700分钟通话。联通39元月,60燃气热水器哪个牌子的质量比较好?要点一是选购与你家庭使用燃气种类一致的热水器。消费者要弄清你家庭使用是何种燃气气源。要点二是地理位置。因为南北温差及洗浴习惯不同,所以在选择的时候应注意。国产除了前锋可以连续工作6官方勒令为骑手缴纳社保,王兴表示交不起,美团未来将走向何方?很荣幸回答这个问题,本人就是兼职骑手,下班周六日休息了去挣一点零花钱,对这个问题有一定的发言权。外卖行业在最近五六年迅速发展,外卖企业也得到了壮大,美团和饿了么已经抢占了九成九的市如果支付宝倒闭,我们在里面的投资钱和余额宝的钱,还要得回来吗?第一,支付宝不会那么容易倒闭。支付宝的背后是蚂蚁集团,以前叫做蚂蚁金服。下半年以来,蚂蚁集团遭受了非常多的打击,如被暂缓上市互联网存款产品被叫停等。但这些打击只是会影响蚂蚁的扩张和寻找陨石有哪些方法?你愿意成为一个陨石猎人吗?不是专业的,只喜欢去戈壁滩捡石头,偶遇陨石,只是根据熔流纹气印融壳吸磁性处的地理环境来判断是否是陨石。找对地方,找懂得的人,学习陨石基础知识,能不能找到就是陨运气了。做一个陨石猎人长期喝净水器的水有危害吗?汉斯顿美的沁园品牌净水器靠不靠谱?大家好,我是一个致力于改变业主在装修中被坑被宰现状的消费者服务社群多让。在这里我会尽可能教大家如何避开消费陷阱,帮助大家闭坑踩雷,用更少的钱买到更优质的产品。希望大家能够支持!总是一个男人,最烧钱的爱好或兴趣是什么?在以前人们都说,假如一个男人在吃喝嫖赌方面,染上一个就足以败家,现在看来,随着社会发展和人们生活水平的提高,在吃喝方面已经花不了多少钱,但嫖和赌却是一个无底洞,如果男人沾上一项,就身怀尖端黑科技,引领时尚新潮流!三星GalaxyZFlip35G体验随着产业的发展,智能手机产业一度变得越来越保守,直到折叠屏手机的横空出世,给行业带来了诸多惊喜。以三星GalaxyZ系列为代表的折叠屏产品,用尖端科技成功惊艳了全球的数码爱好者。本intel处理器为什么可以屏蔽核心降级?这样子在成本上不是亏了吗?因为intel屏蔽的是瑕疵核心,而不是把高级别CPU屏蔽成低端产品!这是很正常的技术操作,这么做可以有效的减少损耗降低成本。相反如果一块芯片有瑕疵的话就做报废处理,其成本显然会大幅卡西欧的手表怎么样?卡西欧手表非常的好历史不用多讲。10余个系列。GSHOCK系列更是在国内销售名列前茅。并且先后开发出3个10开发目标(10米防跌落撞击10个BAR的防水能力10年电池使用寿命)在电2021年,为何说DIY电脑已死?其实在显卡没涨价之前,电脑DIY就已经死的差不多了,只不过影响没那么明显,大家没意识到而已一是DIY商家自己作死造成的,一是科技发展造成的。先说商家作死。大概2015年的时候,我想