Java 屏幕截图教程:将图片序列化为 byte[] 数组
在 Java 中,你可以使用 Robot 类来截取屏幕截图,并将图片序列化为 byte[] 数组。以下是一个示例代码:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ScreenCapture {
public static byte[] captureScreen() throws AWTException, IOException {
// 创建一个Robot对象来截取屏幕截图
Robot robot = new Robot();
// 获取屏幕尺寸
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int width = screenSize.width;
int height = screenSize.height;
// 创建一个BufferedImage对象以保存屏幕截图
BufferedImage screenshot = robot.createScreenCapture(new Rectangle(0, 0, width, height));
// 将BufferedImage对象转换为byte数组
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(screenshot, 'png', baos);
byte[] bytes = baos.toByteArray();
return bytes;
}
public static void main(String[] args) {
try {
byte[] screenShotBytes = captureScreen();
System.out.println('截图成功,图片大小:' + screenShotBytes.length + ' 字节');
} catch (AWTException | IOException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们使用 Robot 类创建一个 Robot 对象,然后使用 createScreenCapture 方法截取整个屏幕的截图,并将其保存到一个 BufferedImage 对象中。接下来,我们使用 ImageIO.write 方法将 BufferedImage 对象转换为 PNG 格式的字节数组。
请注意,截取屏幕截图可能需要获取屏幕的权限,因此在运行代码之前,请确保你的程序具有足够的权限来访问屏幕。
原文地址: https://www.cveoy.top/t/topic/qsaG 著作权归作者所有。请勿转载和采集!