您現在的位置是:首頁 > 手機遊戲首頁手機遊戲
Java Robot 編寫指令碼機器人(三)螢幕截圖
- 2023-01-23
java可以編無人機程式嗎
大家好,我是阿星。
上期我們介紹了Robot的鍵盤實現自動打字,今天我們來詳細介紹一下螢幕截圖的用法
透過 Robot。createScreenCapture 方法獲取螢幕截圖(無滑鼠)時,發現2160x1440的螢幕,只能生成解析度為 1440 x 960 的圖片。
系統是 windows10,縮放為 150%,生成的 1440 x 960 解析度為 2160/1。5 x 1440/1。5 的值;
如果 WIDTH 和 HEIGHT 填寫1440 x 960,生成的截圖是正常的,知識解析度小一點,如果填寫 2160x1440 ,則生成的截圖裡,桌面的截圖在最終生成的整個影象的左上角,其餘部分全部為黑色。
BufferedImage screenCapture = robot。createScreenCapture(new Rectangle(0, 0, WIDTH, HEIGHT)); // 截圖
透過分析 Robot。createScreenCapture 方法發現,其確實適配了縮放的情況,也生成了縮放前後的兩個尺寸的影象,但是卻返回了低解析度的那一個。
Robot螢幕截圖程式碼
import
javax。imageio。ImageIO;
import
java。awt。*;
import
java。awt。image。BufferedImage;
import
java。io。File;
import
java。io。IOException;
public
class
RobotTest2
{
public
static
void
main
(String[] args)
throws
IOException
{
try
{
Robot robot =
new
Robot();
// 建立一個機器人物件
// 取得當前螢幕大小
Toolkit tk = java。awt。Toolkit。getDefaultToolkit();
Dimension dimension = tk。getScreenSize();
int
width=(
int
)dimension。getWidth();
int
height=(
int
)dimension。getHeight();
//將螢幕截圖放入圖片緩衝區
BufferedImage screenshot = robot。createScreenCapture(
new
Rectangle(
0
,
0
,width,height));
//存放圖片所在路徑
String path = System。getProperty(
“user。dir”
) +
“\\”
+
“images”
;
//建立資料夾
File file =
new
File(path);
if
(!file。exists()){
file。mkdir();
}
file =
new
File(path+
“/out。jpg”
);
//將圖片緩衝區內容寫入到檔案中
ImageIO。write(screenshot,
“jpg”
, file);
System。out。println(
“截圖成功:”
+path+
“/out。jpg”
);
}
catch
(HeadlessException e) {
e。printStackTrace();
}
catch
(AWTException e) {
e。printStackTrace();
}
catch
(IOException e) {
e。printStackTrace();
}
}
}
執行效果
小結
精彩的文章一定不能錯過哦,我們下期再見!
獲取java面試通關手冊 docs.qq.com/doc/DUE9QWG9QZXRuSGNY