使用 Python 截屏
Python 编程语言允许我们执行各种任务,所有这些都借助简单的模块和简短的代码。 在 Python 的帮助下截取屏幕截图就是这样的任务之一。
Python 为我们提供了许多模块,使我们能够执行不同的任务。 使用 Python 及其库截取屏幕截图的方法有多种。
本文将引导您完成使用 Python 截取屏幕截图必须遵循的所有步骤。 让我们开始!
使用 Pyautogui 模块使用 Python 进行屏幕截图
第一种方法使用 Python 提供的 pyauotgui 模块。 您可以在终端窗口中使用以下命令安装此模块。
$ pip install pyautogui
pyautogui 模块使用 snapshot() 函数来帮助捕获整个屏幕。 稍后,您可以使用 save() 函数保存图像,也可以使用 imwrite() 函数以及 NumPy 和 OpenCV 模块将图像写入磁盘。
详细看看这两种方法。
使用 Pyautogui 模块中的 save() 函数使用 Python 进行截图
安装 pyautogui 模块后,截取屏幕截图的最简单方法是使用 snapshot()
函数和 save()
函数。 下面是使用这些函数的示例代码。
示例代码:
import pyautogui
demo_image = pyautogui.screenshot()
demo_image.save("demo_one.jpg")
首先,我们导入 pyautogui 模块。 然后,我们调用 snapshot() 函数来捕获屏幕图像。
此外,在最后一行代码中,我们使用 save() 函数以及要保存图像的名称。 在这种情况下,可以通过文件名 demo_one.jpg 找到捕获的图像。
下面是我们得到的输出图像。 请注意,您将在 Jupyter Notebook 或 Python 所在的目录中找到此图像。
如果您希望在捕获图像时有一些延迟,可以使用 time 模块的 sleep()
函数。
使用 Numpy 和 Opencv 模块与 Pyautogui 一起使用 Python 进行屏幕截图
第二种方法涉及使用另外两个模块以及 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)
我们首先导入所需的模块,然后使用 snapshot()
函数来捕获屏幕。 然后,我们将图像转换为 NumPy 数组,并将颜色顺序从 RGB 更改为 BGR。
这样做是因为 OpenCV 读取图像时,要求颜色顺序为 BGR 而不是默认的 RGB。 最后,我们使用 imwrite()
函数将图像写入磁盘。
这就是输出图像的样子。
输出:
这就是关于如何使用 pyautogui 模块在 Python 中截取屏幕截图。 现在,我们将继续使用下一个方法来执行相同的操作。
使用 Pillow 模块使用 Python 进行截图
默认情况下使用 pyautogui 模块捕获整个屏幕。 但是,如果我们必须捕获屏幕的一部分,我们可以使用 Pillow 模块。
该模块使用另一个名为 ImageGrab 的子模块,它允许我们设置要捕获的屏幕所需区域的坐标。 我们使用 grab()
函数来指定这些坐标。
这是此方法的代码。
示例代码:
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 进行屏幕截图
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 中绘制水平线
发布时间:2023/06/30 浏览次数:157 分类:Python
-
我们将介绍如何在Python中创建一条水平线。 我们还将介绍 Python 中的 Matplotlib 库。Python 中的水平线 水平线是从左到右或从右到左的任何直线。
使用 Python 连接到 PostgreSQL 数据库
发布时间:2023/06/30 浏览次数:134 分类:Python
-
本文介绍了创建与 PostgreSQL 上的数据库的连接的过程。 我们需要安装 PostgreSQL 和创建数据库等先决条件,如下所述。在系统中安装 PostgreSQL
Python 中的 Rabin-Karp 算法
发布时间:2023/06/30 浏览次数:154 分类:Python
-
我们将介绍 Python 中的 Rabin-Karp 算法,并讨论如何在 Python 程序中使用它。Python 中的 Rabin-Karp 算法 Rabin-Karp 算法从给定的输入或值中查找特定的数字、字母或模式。
Python 中的后台进程
发布时间:2023/06/30 浏览次数:129 分类:Python
-
我们将介绍如何在后台运行Python脚本作为后台进程。 我们还将介绍Python中的pythonw。Python 中的后台进程
Python 3 中的 Urllib2
发布时间:2023/06/30 浏览次数:92 分类:Python
-
在本篇文章中,我们的目标是探索解决 Python 中 ModuleNotFoundError: No module named 'urllib2' 问题的方法。Python 3 中的 urllib
Python 中的邻接矩阵
发布时间:2023/06/29 浏览次数:108 分类:Python
-
Python 中使用图数据结构来表示各种现实生活中的对象,例如网络和地图。 我们可以使用邻接矩阵来表示图。本文将讨论在 Python 中实现邻接矩阵的不同方法。创建邻接矩阵
Python 中的 WARNING: An Illegal Reflective Access Operation Has Occurred
发布时间:2023/06/29 浏览次数:198 分类:Python
-
WARNING: An illegal reflective access operation has occurred 并不是什么新鲜事。 它从 Python 2.2 版本开始就存在了。反射是程序检查自身的能力,换句话说,是找出有关其结构和行为的信息的能力。
NumPy 相关函数
发布时间:2023/06/29 浏览次数:68 分类:Python
-
本篇文章介绍了Python中NumPy库的相关函数 np.corrcoef() 函数。NumPy 中的相关性 相关系数是一个数字值,表示数据集给定特征之间的关系。
在 Python 中将 Unicode 转换为 ASCII
发布时间:2023/06/29 浏览次数:125 分类:Python
-
通过本文,我们将学习如何将 Unicode 编码为字节,了解系统编码的不同方法以及在 Python 中将 Unicode 转换为 ASCII。在 Python 中将 Unicode 转换为 ASCII