本文目录导读:

- Python 中使用
pyautogui截图(最常用) - Python 中使用
PIL.ImageGrab截图(跨平台) - Java 中使用
java.awt.Robot截图 - 其他相关:
mss库(高速截图,适合游戏或高性能需求) - 总结选择
在Python中,Robot 类通常指 java.awt.Robot(Java)或 pyautogui(Python)等库,如果你是 Python 开发者,大概率是使用 pyautogui 或 PIL 结合 pyautogui 进行截图,但如果是 Java 的 Robot 类,我也一并说明。
Python 中使用 pyautogui 截图(最常用)
pyautogui.screenshot() 是核心方法,返回一个 PIL.Image 对象,可以保存或处理。
import pyautogui
# 截取全屏
screenshot = pyautogui.screenshot()
screenshot.save('screenshot.png')
# 截取指定区域 (left, top, width, height)
region = (100, 100, 500, 400) # x, y, 宽度, 高度
screenshot_region = pyautogui.screenshot(region=region)
screenshot_region.save('region.png')
安装:
pip install pyautogui pillow
(pyautogui 依赖 PIL 用于图片操作,会自动安装或需手动装 pillow)
Python 中使用 PIL.ImageGrab 截图(跨平台)
PIL.ImageGrab.grab() 也是一个常用选择,且在某些场景比 pyautogui 更底层。
from PIL import ImageGrab
# 全屏截图
img = ImageGrab.grab()
img.save('screenshot_pil.png')
# 指定区域
bbox = (100, 100, 600, 500) # (left, top, right, bottom)
img_region = ImageGrab.grab(bbox=bbox)
img_region.save('region_pil.png')
安装:
pip install pillow
Java 中使用 java.awt.Robot 截图
如果你是在 Java 环境下工作,使用 Robot 类的 createScreenCapture(Rectangle) 方法。
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ScreenCapture {
public static void main(String[] args) throws Exception {
Robot robot = new Robot();
// 全屏截图
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle screenRect = new Rectangle(screenSize);
BufferedImage capture = robot.createScreenCapture(screenRect);
ImageIO.write(capture, "png", new File("screenshot.png"));
// 指定区域截图
Rectangle region = new Rectangle(100, 100, 500, 400);
BufferedImage regionCapture = robot.createScreenCapture(region);
ImageIO.write(regionCapture, "png", new File("region.png"));
}
}
其他相关:mss 库(高速截图,适合游戏或高性能需求)
import mss
with mss.mss() as sct:
# 全屏
screenshot = sct.shot(output='screenshot_mss.png')
# 指定显示器或区域
monitor = sct.monitors[1] # 主显示器
sct.shot(mon=monitor, output='monitor1.png')
安装:
pip install mss
总结选择
| 环境/需求 | 推荐方式 |
|---|---|
| Python 简单截图 | pyautogui.screenshot() |
| Python 需要底层控制 | PIL.ImageGrab.grab() |
| Java 原生 | java.awt.Robot.createScreenCapture() |
| 高性能/多显示器 | mss |
如果你的问题是关于 Java 的 Robot 类,请给我确认,我可以再细化,如果是 Python 的“Robot 类”(如 pyautogui),上述代码可直接使用。