几行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。
windows API
调用windows API,速度快但是使用较复杂,这里就不做详细介绍了,因为有更好用的PyQt。
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就可以进行截图了。
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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获取屏幕截图的4种方法详解就是小编分享给大家的全部内容了
几行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做病毒传播的空间数据_利用4行Python代码监测每一行程序的运行时间和空间消耗...
Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言,其具有高可扩展性和高可移植性,具有广泛的标准库,受到开发者的追捧,广泛应用于开发运维(DevOps).数据科学.网站开发和安 ...
- 如何用python破解热点_用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快
原标题:用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快 当我们拖着疲惫的身体下班回到家,想开开心心的吹着空调风扇吃着西瓜,然后手机连上wifi打一把游戏好好舒服下,然而家里wif ...
- n行Python代码系列:三行程序实现从视频截取子窗内容输出
☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython ░ 一.引言 最近看到好几篇类似"n行Python代码-"的博文,看起来还 ...
- 再见,360浏览器!我用60行Python代码制作一款浏览器!
点上方"菜鸟学Python",选择"星标" 第476篇原创干货,第一时间送达 对于日常网上冲浪的朋友们,浏览器是大家必不可少的一个工具,市面上也存在各种款式的浏 ...
- n行Python代码系列:四行程序实现两个视频同屏播放
☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython ░ 一.引言 最近看到好几篇类似"n行Python代码-"的博文,看起来还 ...
- n行Python代码系列:两行程序判断是否处于Debug模式
☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 一.引言 最近看到好几篇类似"n行Python代码-"的博文,看起来还 ...
最新文章
- 超图桌面版下载、安装、使用入门
- 织入业务代码-IModifyService
- 使用WordPress的Kyma plugin同Kyma断开连接的实现
- vue-beauty UI库
- 牛客 13822 Keep In Line(枚举与暴力、Python)
- 基本配置4-被忽悠进了CentOS 6
- InTouch离线激活教程
- KuaiRec | 快手发布首个稠密度高达99%的推荐数据集, 可用于多种推荐系统方向研究...
- 浪潮之巅阅读笔记02
- [渝粤教育] 西安交通大学 光通信器件及系统 参考 资料
- 【kafka】生产者速度测试
- 高可用之2——存储b
- xsd文件生成class
- 【Tools系列】SecureCRT文件传输模式之Zmodem
- 昂达obook11安装Linux,隐藏超大彩蛋!昂达oBook11居然支持手写笔?
- jsp页面使用大于号等
- 历年研究生数学建模优秀论文汇总
- MTF SFR 简介
- 智能家居Zigbee和蓝牙哪个发展潜力更大?
- Hololens开发笔记_在Unity运行没问题,在Hololens跑出现PathNotFoundException:Could not find a part of path.