gpt4 book ai didi

java - 如何将屏幕截图发送到服务器而不存储在本地计算机中

转载 作者:行者123 更新时间:2023-12-02 05:54:23 25 4
gpt4 key购买 nike

我是 Java 初学者,正在开发一个桌面应用程序。

根据要求,我必须按时间间隔捕获屏幕截图并将其发送到服务器。

为此我编写了以下代码

            Rectangle screenRect = new Rectangle(Toolkit
.getDefaultToolkit().getScreenSize());

//To Store the scrreen shot in buffer.
BufferedImage capture = new Robot()
.createScreenCapture(screenRect);

//To Save the image on specific location.
ImageIO.write(capture, "png", new File(
"resources/img/screenshot.png"));
//To decrees the size of the image
Thumbnails.of("resources/img/screenshot.png").scale(0.50)
.toFile("resources/img/screenshot.png");

File file = new File("resources/img/screenshot.png");
MultipartEntity mpEntity = new MultipartEntity();
ContentBody cfBody = new FileBody(file);

mpEntity.addPart("screenshot", cfBody);

此代码运行成功,但问题是,当任何机器无权在“程序文件文件夹”中写入文件时,这将不起作用。

那么有没有办法通过httpClient发送图像而不存储在本地机器?

最佳答案

@AdityaKeyal 的建议绝对可行,但可能需要对您的代码进行一些更改。我会尝试看看您是否可以使用更方便的位置来存储发送时的临时图像,并在网络进程成功结束时简单地删除。

根据您的“程序文件文件夹”,您似乎在 Windows 计算机上(即使您的路径中有反斜杠)。恕我直言,您应该使用环境变量 %TEMP%,它在不同的 Windows 版本上指向不同的位置,但它是此类临时数据的定义位置。

如果您使用的是 Linux 或 OSX,则可以使用/tmp 写入临时数据。每个人都可以写入该文件夹。

关于java - 如何将屏幕截图发送到服务器而不存储在本地计算机中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23235150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com