返回

如何在 Windows 上用 Python 截取屏幕截图?5 种简单方法详解

windows

如何在 Windows 上使用 Python 截取屏幕截图

引言

截取屏幕截图在许多不同的情况下都很有用,从故障排除到创建教程或共享有趣的时刻。在 Windows 上,可以使用 Python 轻松地进行屏幕截图,有几种方法可供选择。

使用 Pillow 库

步骤 1:安装 Pillow

pip install Pillow

步骤 2:截取整个屏幕的截图

from PIL import ImageGrab

image = ImageGrab.grab()
image.save('screenshot.png')

步骤 3:截取特定区域的截图

region = (100, 100, 400, 400)
image = ImageGrab.grab(region)
image.save('screenshot_region.png')

使用 pywin32 库

步骤 1:安装 pywin32

pip install pywin32

步骤 2:截取整个屏幕的截图

import win32gui
import win32ui

hdesktop = win32gui.GetDesktopWindow()
width = win32gui.GetSystemMetrics(win32gui.SM_CXSCREEN)
height = win32gui.GetSystemMetrics(win32gui.SM_CYSCREEN)
hwndDesktop = win32gui.GetWindowDC(hdesktop)
hwndDC = win32ui.CreateDCFromHandle(hwndDesktop)
compatibleDC = hwndDC.CreateCompatibleDC()
compatibleBitmap = win32ui.CreateCompatibleBitmap(hwndDC, width, height)
compatibleBitmap.SelectObject(compatibleDC)
win32gui.BitBlt(compatibleBitmap.GetHandle(), 0, 0, width, height, hwndDesktop, 0, 0, win32con.SRCCOPY)
compatibleBitmap.SaveBitmapFile(compatibleDC, 'screenshot.bmp')

步骤 3:截取特定区域的截图

left, top, right, bottom = 100, 100, 400, 400
width = right - left
height = bottom - top
hwndDesktop = win32gui.GetDesktopWindow()
hwndDC = win32gui.GetWindowDC(hwndDesktop)
hwndMemDC = win32gui.CreateCompatibleDC(hwndDC)
hBitmap = win32gui.CreateCompatibleBitmap(hwndDC, width, height)
hOldBitmap = win32gui.SelectObject(hwndMemDC, hBitmap)
win32gui.BitBlt(hwndMemDC, 0, 0, width, height, hwndDC, left, top, win32con.SRCCOPY)
win32ui.CreateBitmapFile(hwndMemDC, hBitmap, 'screenshot_region.bmp')

使用 win32api 模块

步骤 1:

无须安装

步骤 2:截取整个屏幕的截图

import win32api

image = win32api.GetPixelData(0, 0, win32api.GetSystemMetrics(win32con.SM_CXSCREEN), win32api.GetSystemMetrics(win32con.SM_CYSCREEN))
win32api.SaveBitmapFile(image, 'screenshot.bmp')

步骤 3:截取特定区域的截图

left, top, right, bottom = 100, 100, 400, 400
width = right - left
height = bottom - top
image = win32api.GetPixelData(left, top, width, height)
win32api.SaveBitmapFile(image, 'screenshot_region.bmp')

使用 pyscreenshot 库

步骤 1:安装 pyscreenshot

pip install pyscreenshot

步骤 2:截取整个屏幕的截图

import pyscreenshot

image = pyscreenshot.grab()
image.save('screenshot.png')

步骤 3:截取特定区域的截图

region = (100, 100, 400, 400)
image = pyscreenshot.grab(region)
image.save('screenshot_region.png')

结论

上面介绍了几种在 Windows 上使用 Python 截取屏幕截图的方法。你可以根据自己的需求选择最适合你的方法。祝你在截屏时一切顺利!

常见问题解答

  1. 哪种方法是最简单的?

    • 使用 Pillow 库或 pyscreenshot 库是比较简单的方法。
  2. 哪种方法最强大?

    • 使用 pywin32 库提供了最强大的功能,但需要安装额外的包。
  3. 我可以截取多个屏幕吗?

    • 是的,你可以使用 win32api 模块来截取多个屏幕。
  4. 我可以将屏幕截图保存为不同的格式吗?

    • 是的,你可以使用 Pillow 库或 pyscreenshot 库将屏幕截图保存为不同的格式,例如 PNG、JPG 和 BMP。
  5. 我可以在屏幕截图上添加文字或其他元素吗?

    • 是的,你可以使用 Pillow 库在屏幕截图上添加文字或其他元素。