python windows api截图_Winapi快速截图并打开
我需要为一个OpenCV项目快速截屏。我可以很容易地使用PIL,例如:def take_screenshot1(hwnd):
rect = win32gui.GetWindowRect(hwnd)
img = ImageGrab.grab(bbox=rect)
img_np = np.array(img)
return cv2.cvtColor(img_np, cv2.COLOR_RGB2BGR)
但它平均需要0.05秒,这对实时捕获来说不够快。在
我可以使用发布的答案here,但这只会将位图保存到文件中。这比使用PIL要快10倍多,但我不确定OpenCV中是否有任何方法可以将其转换为bgr/hsv图像。在
^{pr2}$
在编辑:大小的值为500x500,因此在两个示例中都保存了相同的区域。在
即使我保存了图像,然后用OpenCV重新打开它,它仍然比PIL快,但是肯定有更简单的方法吗?在
编辑:好,使用注释并对winapi I进行一些研究,现在可以直接访问位图数据,如下所示:def take_screenshot1(hwnd):
wDC = win32gui.GetWindowDC(hwnd)
dcObj=win32ui.CreateDCFromHandle(wDC)
cDC=dcObj.CreateCompatibleDC()
dataBitMap = win32ui.CreateBitmap()
dataBitMap.CreateCompatibleBitmap(dcObj, 500, 500)
cDC.SelectObject(dataBitMap)
cDC.BitBlt((0, 0), (500, 500), dcObj, (0, 0), win32con.SRCCOPY)
im = dataBitMap.GetBitmapBits(True) # Tried False also
img = np.array(im)
cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
print(img)
dcObj.DeleteDC()
cDC.DeleteDC()
win32gui.ReleaseDC(hwnd, wDC)
win32gui.DeleteObject(dataBitMap.GetHandle())
但是我不确定如何将返回的位图转换为OpenCV能够理解的格式,因为OpenCV中没有将位图转换为rgb/bgr的方法
python windows api截图_Winapi快速截图并打开相关推荐
- python windows api截图_Python调用windows API实现屏幕截图
Python调用windows API实现屏幕截图 好处是 灵活 速度快 缺点是: 写法繁琐 不跨平台 import time import win32gui, win32ui, win32con, ...
- 自学Python+windows API自动化操作桌面功能
目 录 一.windows API 1.官方文档 2.pywin32 3.win32api 4.win32gui 5.win32clipboard 二.windows API的另一种键鼠输入 1 ...
- python windows api hook_windows hook + pyhook3 + python win32api hook + C 键盘hook
下面是自己学的时候查到的东西的一些整理, /// 下面开始是整理 windows hook原理: windows hook api: C语言windows 键盘Hook: python 使用win32 ...
- 【实用】如何在windows下快速截图?
如何在windows下快速截图? 快速截图是很多人的需求.截图的工具和方案也很多,但是,这里给出一个通用的,被大众认为最高效的一个解决方案. 我们都知道键盘上有一个"prt sc" ...
- Python windows高效截屏
win32系列模块是python windows api实现,效率很高,但是环境搭建比较麻烦,各种pip install报错,本次成功安装依赖idea的Alt + Enter自动下载安装 import ...
- python怎么保存到桌面_python3应用windows api对后台程序窗口及桌面截图并保存的方法...
python的版本及依赖的库的安装 #版本python 3.7.1 pip install pywin32==224 pip install numpy==1.15.3 pip install ope ...
- python3应用windows api对后台程序窗口及桌面截图并保存
目录 python的版本及依赖的库的安装 对后台窗口截图 对桌面截图 python的版本及依赖的库的安装 #版本python 3.7.1 pip install pywin32==224 pip in ...
- 调用Windows api 窗口截图
分别调用windows api函数及CVI自带函数,完成对GRAPH界面的截图 界面设计如下图,右侧为graph控件的位置信息,调用API函数是完成对于选择窗口的固定位置进行截图,调用CVI自带函数则 ...
- windows xp进入访客_Windows XP时代的快速截图工具在Windows 10后续版本里将被逐渐弃用...
自Windows XP开始微软就在系统里提供截图工具 (Snipping Tool) ,相信现在还有用户仍然使用这个截图工具. 不过在Windows 10里微软已经开发新的截图应用即截图和草图,该应用 ...
- win10自带的 快速截图功能
昨天下午看到用windows的小伙伴在讨论如何快速截图,我也就参与讨论了一下.发现几种截图方案中,下面这种截图方案最快捷方便: Ctrl + R 输入 cmd 点击 回车键 在dos命令行输入 S ...
最新文章
- 又到 6 月底,想来和你聊一聊毕业季,愿你前程似锦!
- Python字符串的编码与解码(encode与decode)
- python3.5中import sqlite3报错:ImportError: No module named _sqlite3
- Spark入门(Python)
- Spring框架IOC的实现
- BZOJ3938 UOJ88:[集训队互测2015]Robot——题解
- 文件上传的几个 - 示例
- 如何解决 MacBook Pro Touch ID不起作用?
- 计算机专业 哪里的好,正规计算机专业哪里好
- js实现html页面转为pdf下载
- Android 退出登录实现
- 华沙理工大学语言c1,留学波兰华沙理工大学:一个让人轻易就爱上的地方
- javaSSH集成的一些感想
- 新的GSMA报告强调“智联万物”在全球的作用
- 卡布奇诺搭建教程_移动Web应用程序框架匹配,第2部分,探索卡布奇诺咖啡以进行移动Web应用程序开发
- 创建反向词典,为你打开神经网络的大门
- 浙大计算机科学与技术专业分数线,浙江大学数学系分数线
- Pycharm中c、m、F、f、v、p分别代表的含义
- 非华为电脑管家连接平板--无法连接问题解决方案之一
- 大数据系统基础 | 绪论