• 用Python制作截图小工具


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

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

    用Pyautogui模块进行截图

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

    pip install pyautogui
    
    • 1

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

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

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

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

    示例代码:

    import pyautogui
    demo_image = pyautogui.screenshot()
    demo_image.save("demo_one.jpg")
    
    • 1
    • 2
    • 3

    首先,我们导入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
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    示例代码:

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    我们首先导入了所需的模块,然后使用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")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

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

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

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

    用Pyscreenshot模块

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

    python
    复制代码
    pip install pyscreenshot
    
    • 1
    • 2
    • 3

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

    示例代码:

    python
    复制代码
    import pyscreenshot
    image_demo = pyscreenshot.grab()
    image_demo.save("demo_four.png")
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

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

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

    示例代码:

    python
    复制代码
    import pyscreenshot
    image_demo = pyscreenshot.grab(bbox=(100, 100, 500, 500))
    image_demo.save("demo_five.png")
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    下面是捕捉到的图像。

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

    总结

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

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

    如果你对Python感兴趣的话,可以试试我整理的这份Python全套学习资料,微信扫描下方二维码免费领取

    包括:Python永久使用安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等学习教程。带你从零基础系统性的学好Python!
    在这里插入图片描述

    零基础Python学习资源介绍

    一、Python所有方向的学习路线

    Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
    在这里插入图片描述

    二、Python学习软件

    工欲善其事,必先利其器。学习Python常用的开发软件都在这里了!
    在这里插入图片描述

    三、Python入门学习视频

    还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述

    四、Python练习题

    每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
    在这里插入图片描述

    五、Python实战案例

    光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。这份资料也包含在内的哈~在这里插入图片描述

    六、Python面试资料

    我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
    在这里插入图片描述
    在这里插入图片描述

    七、资料领取

    上述完整版Python全套学习资料已经上传CSDN官方,需要的小伙伴可自行微信扫描下方CSDN官方认证二维码输入“领取资料”免费领取!!
    在这里插入图片描述

  • 相关阅读:
    金融知识分享系列之:五日线
    excel导出标准化
    Red Hat 6安装Oracle Linux内核头文件
    穿越两大空间的调用栈
    20240313-设计模式
    【Spring源码系列】Bean生命周期-依赖注入
    Androd 在非activity,例如Service中如何创建Dialog
    opentelemetry、grafana、Prometheus、jaeger、victoria-metrics 介绍、关系与使用
    【Linux】进程控制基础知识
    学习【Cesium】第三篇,从Cesium.Viewer查看器开始学习(学不会揍我)
  • 原文地址:https://blog.csdn.net/mate1357/article/details/134457226