Python代码制作桌面截图程序
PIL中的ImageGrab模块
import time
import numpy as np
from PIL import ImageGrabimg = ImageGrab.grab(bbox=(100, 161, 1141, 610))
img = np.array(img.getdata(), np.uint8).reshape(img.size[1], img.size[0], 3)
使用PIL中的ImageGrab模块简单,但是效率有点低,截屏一次需0.5s。
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 syshwnd = win32gui.FindWindow(None, 'C:\Windows\system32\cmd.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 cv2img = pyautogui.screenshot(region=[0,0,100,100]) # x,y,w,h
# img.save('screenshot.png')
img = cv2.cvtColor(np.asarray(img),cv2.COLOR_RGB2BGR)
好了,以上就是python获取截图的方法详细解说了。
我是小圆,我们下篇文章见 ~
Python代码制作桌面截图程序相关推荐
- 几行python代码制作桌面截图程序
PIL中的ImageGrab模块 import time import numpy as np from PIL import ImageGrabimg = ImageGrab.grab(bbox=( ...
- 80行Python代码制作微信抢红包程序,运气王属于有技术的人
每逢过年过节,大家都会在微信群里联系祝福自己的亲朋好友,有时候还会在群里发红包,让大家去抢,其实并没有多少人在乎红包里那点钱,主要还是为了烘托气氛,图个彩头.但是气氛归气氛,要是每次总是抢到最小的红包 ...
- python做出来的小程序、可以在win10上面运行_超详细,手把手教你用20行Python代码制作飞花令小程序!...
原标题:超详细,手把手教你用20行Python代码制作飞花令小程序! 来源:早起Python 作者:陈熹 飞花令是古时候人们经常玩一种"行酒令"的游戏,是中国古代酒令之一,属雅令. ...
- python嵌入c代码_怎样把Python代码嵌入到C程序
匿名用户 1级 2017-11-03 回答 这篇文章主要介绍了将Python代码嵌入C++程序进行编写的实例,尽管通常还是Python代码中调用C++程序的情况较多...需要的朋友可以参考下 把pyt ...
- python做病毒传播的空间数据_利用4行Python代码监测每一行程序的运行时间和空间消耗...
Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言,其具有高可扩展性和高可移植性,具有广泛的标准库,受到开发者的追捧,广泛应用于开发运维(DevOps).数据科学.网站开发和安 ...
- 如何用python破解热点_用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快
原标题:用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快 当我们拖着疲惫的身体下班回到家,想开开心心的吹着空调风扇吃着西瓜,然后手机连上wifi打一把游戏好好舒服下,然而家里wif ...
- python制作桌面小程序_微信小程序在线制作:快速生成一个餐饮小程序
相信很多餐饮行业的商家都遇到过这类问题:一到用餐高峰期,餐厅内就拥挤不堪,工作人员也忙得不可开交,前厅后厨来回跑,时间长了顾客也等得不耐烦.此外,外卖平台的高额抽成也让普通餐饮商家生存越来越艰难.本来 ...
- python代码提示太弱了_10行Python代码制作群聊提醒小助手,再也不怕漏掉消息了...
前言 大家还记得教会父母玩微信是什么时候吗?父母学会后,我们的生活就发生了「质」的变化,父母也许会 吐槽你的微信头像不好,要你换一个头像. 最近 pk哥 又被母后大人吐槽了,原因是亲戚微信群里某个亲戚 ...
- n行Python代码系列:三行程序实现从视频截取子窗内容输出
☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython ░ 一.引言 最近看到好几篇类似"n行Python代码-"的博文,看起来还 ...
最新文章
- Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager
- elasticsearch源码分析之search模块(server端)
- 虚拟化之四:虚拟化备份策略已成数据安全的焦点!
- html文件打开多出很多数字,【求助】页面上显示几个数字,打开html的时候希望能滚动起来...
- threejs 用 ExtrudeGeometry 画管线
- ntr模式_ntr什么意思?
- MATLAB GPU加速
- 拼多多市值超2100亿美元 黄峥成中国第二大富豪
- Hadoop和Spark的异同
- 【转】记使用Kali linux 2.0的一些坑
- Vue左边与右边内容相关联
- Php sql server2005,phpmssqlserver2005数据库连接类
- 注意,GitHub发布重大更新,关系到所有程序员!
- 中国单箱梁体最宽矮塔斜拉桥合龙
- 影视网站导航PHP源码
- 用openlayers3绘图(点、线、圆、正方形....)
- JS生成随机字符,生成一堆高逼格的乱码。。。
- leetcode简单1742/867
- 中国移动支付行业投资机会分析与发展战略建议报告2022-2028年
- 宋家瑜:做中国的威睿而不是VMware中国