您現在的位置是:首頁 > 手機遊戲首頁手機遊戲

Java Robot 編寫指令碼機器人(三)螢幕截圖

簡介將螢幕截圖放入圖片緩衝區BufferedImage screenshot = robot

java可以編無人機程式嗎

Java Robot 編寫指令碼機器人(三)螢幕截圖

大家好,我是阿星。

上期我們介紹了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 Robot 編寫指令碼機器人(三)螢幕截圖

Java Robot 編寫指令碼機器人(三)螢幕截圖

小結

精彩的文章一定不能錯過哦,我們下期再見!

獲取java面試通關手冊 docs.qq.com/doc/DUE9QWG9QZXRuSGNY

Top