用Python制作截图小工具

【WinForm】截屏工具窗口简单实现原理,附详细代码 准备 Visual Studio 开发环境 会写C#语言 建立一个 WinForm 窗体项目 创建一个窗体,如Form4,用于放置全屏下的截图,默认最大化,具体代码如下 using System; using System.Drawing; using System.IO; using System.Runtime.InteropServices; using System.Windows.Forms; using WindowsFormsApp2.lib; namespace Windows. 阅读详情

Python编程语言允许我们执行各种任务,所有这些都是在简单模块和短小精悍的代码的帮助下完成的。在Python的帮助下进行屏幕截图就是这样一项任务。

Python为我们提供了许多模块,使我们能够执行不同的任务。有多种方法可以使用Python及其库进行屏幕截图。

用Pyautogui模块进行截图

第一种方法是使用Python提供的pyauotgui 模块。你可以在终端窗口使用下面的命令来安装这个模块。

pip install pyautogui

pyautogui 模块使用screenshot() 函数,它有助于捕捉整个屏幕。之后,你可以使用save() 函数来保存图像,或者使用imwrite() 函数与NumPy 和OpenCV 模块一起把图像写到磁盘上。

详细了解一下这两种方法。

1.用Pyautogui模块中的save() 函数

一旦你安装了pyautogui 模块,最简单的截图方法是使用screenshot() 函数和save() 函数。下面是一个使用这些函数的示例代码。

示例代码:

import pyautogui
demo_image = pyautogui.screenshot()
demo_image.save("demo_one.jpg")

首先,我们导入pyautogui 模块。然后,我们调用screenshot() 函数,该函数捕获了屏幕的图像。

此外,在最后一行代码中,我们使用save() 函数和我们想保存的图像的名称。在这种情况下,捕获的图像可以通过文件名demo_one.jpg 找到。

下面是我们得到的输出图像。注意,你会在Jupyter笔记本或Python的同一目录下找到这个图像。

在这里插入图片描述
如果你想在捕捉图像时有一些延迟,你可以使用time 模块的sleep() 函数。

2.用Numpy和Opencv模块与Pyautogui一起使用

第二种方法涉及到与pyautogui 一起使用另外两个模块;它们是NumPy 和OpenCV 。在第一种方法中,我们使用save() 函数来保存图像。

但在这里,我们将使用这两个模块来拍摄和保存屏幕截图。

通过在终端写下以下命令来安装Numpy 和OpenCV 。

pip install numpy

pip install opencv-python

下面是所有模块安装后必须使用的代码。

示例代码:

#import the required modules
import numpy as x
import cv2
import pyautogui
#use pyautogui to take screenshot
demo_image = pyautogui.screenshot()
#use opencv and numpy to manipulate image
demo_image = cv2.cvtColor(x.array(demo_image),cv2.COLOR_RGB2BGR)
#save the image using opencv
cv2.imwrite("demo_two.png", demo_image)

我们首先导入了所需的模块,然后使用screenshot() 函数来捕获屏幕。然后,我们将图像转换为NumPy 数组,并将颜色的顺序从RGB改为BGR。

这样做是因为当OpenCV 读取图像时,它要求颜色的顺序是BGR而不是默认的RGB。最后,我们使用imwrite() 函数将图像写到磁盘上。

这就是输出图像的样子。

输出:
在这里插入图片描述
以上是关于如何在Python中使用pyautogui 模块进行屏幕截图的全部内容。现在,我们要进入下一个方法来做同样的事情。

要了解更多关于pyautogui 模块的信息,请参考这个文档。

用Pillow模块

使用pyautogui 模块,默认情况下可以捕获整个屏幕。然而,如果我们必须捕捉屏幕的一部分,我们可以使用Pillow 模块。

这个模块使用另一个叫做ImageGrab 的子模块,让我们设置我们想要捕捉的屏幕区域的坐标。我们使用grab() 函数来指定这些坐标。

下面是这种方法的代码。

示例代码:

#Python小白学习交流群:711312441
from PIL import ImageGrab
ss_coordinates = (200, 200, 600, 600)
demo_image = ImageGrab.grab(ss_coordinates)
demo_image.save("demo_three.jpg")

我们首先导入了Pillow 模块和ImageGrab 子模块。然后,我们为我们想要捕捉的屏幕设置了一些坐标。

此外,我们使用grab() 函数,并将这些坐标传递给该函数。然后,使用save() 方法保存捕获的图像。

这就是我们得到的屏幕截图。

输出:
在这里插入图片描述
从本质上讲,这就是在Python中拍摄屏幕截图的方法,即通过设置坐标。参考该文档以了解更多关于Pillow 模块的信息。

用Pyscreenshot模块

Python提供了这个叫做pyscreenshot 的模块,其唯一的任务就是进行截图。要安装这个模块,在终端使用以下命令。

pip install pyscreenshot

一旦该模块安装完毕,使用这段代码对整个屏幕进行截图。

示例代码:

import pyscreenshot
image_demo = pyscreenshot.grab()
image_demo.save("demo_four.png")

我们首先导入了pyscreenshot 模块,然后使用grab() 函数来捕获屏幕。最后,我们使用save() 函数来保存图像。

下面是我们得到的图像的输出。

输出:
在这里插入图片描述
我们还可以使用这个模块来捕捉屏幕的一部分。我们只需将所需的坐标作为一个元组传递给grab() 函数。

下面是对屏幕特定部分进行截图的代码。

示例代码:

import pyscreenshot
image_demo = pyscreenshot.grab(bbox=(100, 100, 500, 500))
image_demo.save("demo_five.png")

请注意,我们在代码的第二行中传递了我们想要捕捉的屏幕部分的坐标。其余的代码与前面的代码工作相同。

下面是捕捉到的图像。

输出:
在这里插入图片描述
注意这个模块,pyscreenshot ,已经不怎么用了,你最好选择我们讨论的前两种在Python中拍摄屏幕的方法。这就是关于如何在Python中进行屏幕截图的全部内容。

总结

这篇文章讨论了我们如何使用Python编程语言进行截图。我们看到了如何使用pyautogui 模块与save() 函数和其他模块,如NumPy 和OpenCV 。

我们还学习了如何使用Python的Pillow 模块来捕捉屏幕的一部分。此外,我们还看到了如何使用pyscreenshot 模块来捕获整个屏幕和它的一部分。

使用 Python 截屏 本文讨论了如何使用 Python 编程语言截取屏幕截图。我们了解了如何将 pyautogui 模块与save()函数以及其他模块(如 NumPy 和 OpenCV)一起使用。我们还学习了如何使用 Python 的 Pillow 模块来捕获屏幕的一部分。此外,我们还了解了如何使用 pyscreenshot 模块捕获整个屏幕及其部分内容。 阅读详情

相关推荐

python如何开发一个截图工具

这个程序创建了一个简单的图形用户界面(GUI),包括一个“截图”按钮和一个“退出”按钮。当用户点击“截图”按钮时,程序将调用ImageGrab.grab()函数,该函数使用Pillow库中的ImageGrab模块捕获屏幕图像。然后,程序将图像保存为“screenshot.png”文件。请注意,这个示例只是一个基本的截图工具,您可以根据需要进行修改和扩展,例如,您可以添加更多的按钮或菜单,允许用户选择截图区域或编辑图像等。PyAutoGUI库:用于自动化控制鼠标和键盘操作,可以用来实现截屏功能。

zhangzhechun的专栏 1444

Python 三种方法实现截图【详解+完整代码】

其实也大可不必哈哈哈

xff123456_的博客 1万+

Materials - UE5中的PivotPainter

可以使用3DS Max Script中的脚本(Pivot Painter)对模型进行处理,让每个Element都有自己的Pivot Point,来方便控制和制作一些特殊的顶点动画效果;

GT的虚幻引擎文档 1290

python 三种方式实现截屏(详解+完整代码)

PIL中的ImageGrab模块# 使用PIL中的ImageGrab模块简单,但是效率有点低# PIL是Python Imaging Library,它为python解释器提供图像编辑函数能力。ImageGrab模块可用于将屏幕或剪贴板的内容复制到PIL图像存储器中。# PIL.ImageGrab.grab()方法拍摄屏幕快照。边框内的像素在Windows上以“RGB”图像的形式返回,在macOS上以“RGBA”的形式返回。# 如果省略了边界框,则会复制整个屏幕。...

c_lanxiaofang的博客 4万+

基于MATLAB/Simulink与WSL2的ROS2实时联合仿真实践

本文详细介绍了基于MATLAB/Simulink与WSL2的ROS2实时联合仿真实践。通过环境配置、PX4仿真环境搭建、自定义消息生成、Simulink通信实现及实时优化等步骤,提供了完整的无人机位置控制案例,帮助开发者实现高精度的实时联合仿真。

red88的博客 204

如何在INCA中修改标定量的初始值,并刷回控制器

测试过程中,有些时候,标定量来不及修改,这就需要修改标定量的初始值了,又不想打开模型重新编译,因此直接在INCA中修改,然后再刷回控制器,就成了最佳选择,之前也学过,长时间不用,忘记怎么搞了,最近又用到了,这次记录一下,以后用到的时候,就不用在网上东翻西找了。截止到2023年11月24日,共找到了两种方法可以实现修改。

weixin_43406519的博客 4204

python制作软件excel_利用Python制作一个 截图+Excel操作浏览器小工具

代码如下:GetData.pyimport xlrdclass ReadExcel():def __init__(self,file):self.open_excel = xlrd.open_workbook(file)# 获取Sheet名def GetSheetName(self):sheet_name = self.open_excel.sheet_names()return sheet_na...

weixin_30937427的博客 356

COMSOL后处理与可视化

公众号→【COMSOL仿真交流】←更多精彩内容 后处理是采用COMSOL建模的一个重要环节。通过软件自带的可视化工具,可以快速方便的展现仿真结果。 COMSOL为使用者提供了多种后处理工具,包括表面图、切面图、等值线图、流线图、线图、体图等等。可按功能分为数据集(储存数据的地方)、派生值和表单(对数据进行进一步的操作)、绘图组合绘图类型(显示数据结果的地方)、导出数据与生成报告。   如果想用origin、matlab对模拟数据做进一步的处理,导出excel格式的模拟结果,这可以通过“导出

midiio的博客 4028

python截屏图片识别点击_10几行代码,用python打造实时截图识别OCR

你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率。今天,我们就来做一款实时截图识别的小工具。顾名思义,运行程序时,可以实时的把你截出来的图片中的文字识别出来。下次,当你想要复制“百度文库”中的内容时,不妨试试这个程序。效果预览源码解析1)等待用户截图此处需要借助贴图神器(Snipaste)其中“f1”是截图的快捷键,“ctrl+c”是把截图保存到剪贴板的快捷键。如果使用...

weixin_39520869的博客 1211

学Simulink--基于多物理场耦合与系统集成的储能系统场景实例:压缩空气储能(CAES)系统的热力学建模与效率分析

本文提供了一个基于Simulink的压缩空气储能(CAES)系统热力学建模教程。通过多物理场耦合方法,详细演示了从系统架构设计到仿真测试的全过程,包括多级压缩机/膨胀机系统搭建、显热蓄热系统设计以及效率分析。文章重点强调了热管理对提升CAES效率的关键作用,并给出了68%电-电效率的优化案例。最后提出了变工况建模、不同蓄热介质对比等高级优化方向,为开发零碳大容量储能系统提供了实用工具和方法。

amy_mhd的博客 131

改进的主动轮廓模型实现图像分割

主动轮廓模型的优点在于可以自适应地调整轮廓形状和位置,适用于不同形状和大小的目标分割。改进的主动轮廓模型是一种有效的图像分割方法,能够适应不同场景下的图像分割需求。改进的主动轮廓模型涉及到许多参数,如模型参数、分割参数、权值系数等,这些参数的调整也会直接影响到分割结果。本文将介绍一个改进的主动轮廓模型,该模型可以实现对图像进行有效的分割。改进的主动轮廓模型是在传统的主动轮廓模型基础上进行的改进。和传统的模型相比,改进的主动轮廓模型加入了外部力和内部力,能够更好地适应复杂场景下的图像分割。

qq_39605374的博客 297

python截图识别文字_10几行代码,用python打造实时截图识别OCR|python基础教程|python入门|python教程...

https://www.xin3721.com/eschool/pythonxin3721/你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率。!今天,我们就来做一款实时截图识别的小工具。顾名思义,运行程序时,可以实时的把你截出来的图片中的文字识别出来。下次,当你想要复制“百度文库”中的内容时,不妨试试这个程序。效果预览​​源码解析1)等待用户截图此处需要借助贴图神器(S...

weixin_39637589的博客 609

CATIA二次开发一一一装配体与零件之间的坐标转换

输入参数:Product(产品实例对象)、iPointToTransfor(待转换坐标点CATMathPoint)核心逻辑:通过产品对象的绝对位置变换矩阵,计算逆向变换实现坐标系转换。输出参数:Point(转换后的局部坐标点CATMathPoint)

工业软件开发 1133

10几行代码,用python打造实时截图识别OCR

点击上方“涛哥聊Python”,选择“星标”公众号重磅干货,第一时间送达来源:GitPython你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率。今天,我们就...

涛哥聊Python 516

【即插即用模块】卷积篇 | TGRS 2025 | HLKConv:小核+空洞=大核,感受野一致,但更轻更准!

本文介绍了分层大核卷积模块HLKConv,该模块通过动态大核+空洞卷积实现高效感受野扩展,将超大核卷积分解为小核+空洞卷积(如53×53核用17×17+dilation=3实现),计算量仅为普通大核的1/10。模块采用双分支设计:基础卷积分支捕捉局部细节,大核空洞分支捕捉长距离关联,通过1×1卷积融合。实验表明HLKConv在红外小目标检测中优于传统大核卷积,适用于高分辨率视觉任务。代码实现了不同核尺寸的配置,输入输出特征维度保持不变,计算效率显著提升。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 347

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python车牌识别逆光怎么办代码_10几行代码,用python打造实时截图识别OCR

你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率。!今天,我们就来做一款实时截图识别的小工具。顾名思义,运行程序时,可以实时的把你截出来的图片中的文字识别出来。下次,当你想要复制“百度文库”中的内容时,不妨试试这个程序。效果预览​​源码解析1)等待用户截图此处需要借助贴图神器(Snipaste)其中“f1”是截图的快捷键,“ctrl+c”是把截图保存到剪贴板的快捷键。如...

weixin_39949473的博客 178

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

python win32api获取句柄_写了个Python小工具,再也不怕孩子偷偷玩电脑游戏啦!

今天小编就带领大家来做一个防止孩子玩游戏的Python小程序。1查询电脑的所有进程用Python循环检测电脑软件的运行情况,当发现游戏软件时弹出警告窗口,并截图保存。学会这项技能,就再也不怕孩子偷偷打游戏了。下面给大家介绍一下详细过程。第一步:循环查询电脑所有进程,并与游戏进程匹配1).本文以steam为例,打开任务管理器(Ctrl+Alt+Delete),在详细信息栏我们可以找到steam的进程...

weixin_39796855的博客 402

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

自制 Windows 小工具 ———— 文字识别助手

使用电脑的时候经常遇到上满是,想却有心无力的情况。又或者浏览器这样的设置。什么?你说都有这样的工具?难道你要为了一个简单的文字提取而专门登录这样的? python 文字识别 windows 实用小工具

Brain_Gym的博客 1326

Python 截图 快捷键截图,一个基于PyQt5的截图,简易截图,自由截图 --pyqt5 入门

最近心血来潮,就想自己写一个截图的小工具,使用PyQt5实现一个简易的截图工具,按下快捷键就可以进行截图 需要安装的包:

Karbob 9644

python小工具小发明_如何使用python写截屏小工具

前言今天我看了一下自己的文件夹,发现了自己写了许多似乎很无聊的代码。于是乎,一个想法油然而生:“生活已经很无聊了,不如再无聊一点叭”。说干就干,那就开一个专题,我们称之为kimol君的无聊小发明。妙…啊~~~今天要做的东西,就是用python写一个截屏工具。想必大家平时截屏的时候很多都是用的微信的ALT+A或者是WINDOWS自带的截屏软件。作为技术宅的我,怎么总是用别人的东西呢?看我的,上图:效...

weixin_39785858的博客 319

python 截图小工具

Python Imaging Library (PIL)它提供了许多用于图像处理的功能,包括图像打开、保存、转换、绘制等。快捷键 Win + Shift + S 来打开 Snipping Tool 工具。一、Windows 操作系统 Snipping Tool 截图工具。通过使用PIL库的ImageGrab方法实现坐标截屏。二、用python实现屏幕截图功能。2:输入snippingtool。2:输入snippingtool。1:win+R打开运行。1:win+R打开运行。python 截图小工具。

liujava56的专栏 2481

python+adb命令制作手机截图工具

python+adb 制作截图小工具

2301_77159424的博客 3132

[Python]用Qt6和Pillow实现截图小工具

python借助QT6,PIL实现截屏功能。解决了DPI不同导致显示与抓取误差问题

weixin_67719939的博客 1993
上一篇: 两种不同的方法来检查Python中的变量是否是字符串
下一篇: Python中解决Python中ModuleNotFoundError: No module named ‘urllib2‘ 的方法
Python热爱者
博客等级 码龄7年 3056粉丝 1330原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值