用Python制作截图小工具

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

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

用Pyautogui模块进行截图

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

python 复制代码
pip install pyautogui

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

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

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

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

示例代码:

python 复制代码
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 。

python 复制代码
pip install numpy

pip install opencv-python

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

示例代码:

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 复制代码
#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 的模块,其唯一的任务就是进行截图。要安装这个模块,在终端使用以下命令。

python 复制代码
pip install pyscreenshot

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

示例代码:

python 复制代码
import pyscreenshot
image_demo = pyscreenshot.grab()
image_demo.save("demo_four.png")

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

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

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

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

示例代码:

python 复制代码
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 模块来捕获整个屏幕和它的一部分。

相关推荐
Olrookie3 分钟前
若依前后端分离版学习笔记(二十)——实现滑块验证码(vue3)
java·前端·笔记·后端·学习·vue·ruoyi
我是李武涯14 分钟前
PyTorch Dataloader工作原理 之 default collate_fn操作
pytorch·python·深度学习
LucianaiB19 分钟前
招聘可以AI面试,那么我制作了一个AI面试教练不过分吧
后端
Kratzdisteln1 小时前
【Python】绘制椭圆眼睛跟随鼠标交互算法配图详解
python·数学·numpy·pillow·matplotlib·仿射变换
maxruan1 小时前
PyTorch学习
人工智能·pytorch·python·学习
无奈何杨1 小时前
CoolGuard更新,ip2region升级、名单增加过期时间
后端
唐古乌梁海1 小时前
【python】在Django中,执行原生SQL查询
python·sql·django
摇滚侠2 小时前
Spring Boot 3零基础教程,WEB 开发 自定义静态资源目录 笔记31
spring boot·笔记·后端·spring
Anthony_49262 小时前
逻辑清晰地梳理Golang Context
后端·go
程序员大雄学编程2 小时前
「用Python来学微积分」5. 曲线的极坐标方程
开发语言·python·微积分