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代码制作桌面截图程序相关推荐

  1. 几行python代码制作桌面截图程序

    PIL中的ImageGrab模块 import time import numpy as np from PIL import ImageGrabimg = ImageGrab.grab(bbox=( ...

  2. 80行Python代码制作微信抢红包程序,运气王属于有技术的人

    每逢过年过节,大家都会在微信群里联系祝福自己的亲朋好友,有时候还会在群里发红包,让大家去抢,其实并没有多少人在乎红包里那点钱,主要还是为了烘托气氛,图个彩头.但是气氛归气氛,要是每次总是抢到最小的红包 ...

  3. python做出来的小程序、可以在win10上面运行_超详细,手把手教你用20行Python代码制作飞花令小程序!...

    原标题:超详细,手把手教你用20行Python代码制作飞花令小程序! 来源:早起Python 作者:陈熹 飞花令是古时候人们经常玩一种"行酒令"的游戏,是中国古代酒令之一,属雅令. ...

  4. python嵌入c代码_怎样把Python代码嵌入到C程序

    匿名用户 1级 2017-11-03 回答 这篇文章主要介绍了将Python代码嵌入C++程序进行编写的实例,尽管通常还是Python代码中调用C++程序的情况较多...需要的朋友可以参考下 把pyt ...

  5. python做病毒传播的空间数据_利用4行Python代码监测每一行程序的运行时间和空间消耗...

    Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言,其具有高可扩展性和高可移植性,具有广泛的标准库,受到开发者的追捧,广泛应用于开发运维(DevOps).数据科学.网站开发和安 ...

  6. 如何用python破解热点_用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快

    原标题:用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快 当我们拖着疲惫的身体下班回到家,想开开心心的吹着空调风扇吃着西瓜,然后手机连上wifi打一把游戏好好舒服下,然而家里wif ...

  7. python制作桌面小程序_微信小程序在线制作:快速生成一个餐饮小程序

    相信很多餐饮行业的商家都遇到过这类问题:一到用餐高峰期,餐厅内就拥挤不堪,工作人员也忙得不可开交,前厅后厨来回跑,时间长了顾客也等得不耐烦.此外,外卖平台的高额抽成也让普通餐饮商家生存越来越艰难.本来 ...

  8. python代码提示太弱了_10行Python代码制作群聊提醒小助手,再也不怕漏掉消息了...

    前言 大家还记得教会父母玩微信是什么时候吗?父母学会后,我们的生活就发生了「质」的变化,父母也许会 吐槽你的微信头像不好,要你换一个头像. 最近 pk哥 又被母后大人吐槽了,原因是亲戚微信群里某个亲戚 ...

  9. n行Python代码系列:三行程序实现从视频截取子窗内容输出

    ☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython ░ 一.引言 最近看到好几篇类似"n行Python代码-"的博文,看起来还 ...

最新文章

  1. Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager
  2. elasticsearch源码分析之search模块(server端)
  3. 虚拟化之四:虚拟化备份策略已成数据安全的焦点!
  4. html文件打开多出很多数字,【求助】页面上显示几个数字,打开html的时候希望能滚动起来...
  5. threejs 用 ExtrudeGeometry 画管线
  6. ntr模式_ntr什么意思?
  7. MATLAB GPU加速
  8. 拼多多市值超2100亿美元 黄峥成中国第二大富豪
  9. Hadoop和Spark的异同
  10. 【转】记使用Kali linux 2.0的一些坑
  11. Vue左边与右边内容相关联
  12. Php sql server2005,phpmssqlserver2005数据库连接类
  13. 注意,GitHub发布重大更新,关系到所有程序员!
  14. 中国单箱梁体最宽矮塔斜拉桥合龙
  15. 影视网站导航PHP源码
  16. 用openlayers3绘图(点、线、圆、正方形....)
  17. JS生成随机字符,生成一堆高逼格的乱码。。。
  18. leetcode简单1742/867
  19. 中国移动支付行业投资机会分析与发展战略建议报告2022-2028年
  20. 宋家瑜:做中国的威睿而不是VMware中国

热门文章

  1. 时空计算机管理系统,用友时空软件计算机系统操作说明
  2. goland navigate back and forward
  3. 最小二乘法的矩阵形式推导
  4. 云客Drupal源码分析之数据库系统及其使用
  5. 【endnote详细入门教程】
  6. 关于iOS10需要支持https才能通关苹果App Store审核问题
  7. 【深度学习前沿应用】图像风格迁移
  8. 【软件测试】工作瓶颈?测试的出路在哪?
  9. 计算机视觉(CV)概述
  10. 关于全国普通高校招生计算机协作组的探秘