返回
如何在 Windows 上用 Python 截取屏幕截图?5 种简单方法详解
windows
2024-03-26 20:33:37
如何在 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 截取屏幕截图的方法。你可以根据自己的需求选择最适合你的方法。祝你在截屏时一切顺利!
常见问题解答
-
哪种方法是最简单的?
- 使用 Pillow 库或 pyscreenshot 库是比较简单的方法。
-
哪种方法最强大?
- 使用 pywin32 库提供了最强大的功能,但需要安装额外的包。
-
我可以截取多个屏幕吗?
- 是的,你可以使用 win32api 模块来截取多个屏幕。
-
我可以将屏幕截图保存为不同的格式吗?
- 是的,你可以使用 Pillow 库或 pyscreenshot 库将屏幕截图保存为不同的格式,例如 PNG、JPG 和 BMP。
-
我可以在屏幕截图上添加文字或其他元素吗?
- 是的,你可以使用 Pillow 库在屏幕截图上添加文字或其他元素。