Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java png屏幕截图周围的黑色边框_Java_Selenium_Screenshot - Fatal编程技术网

Java png屏幕截图周围的黑色边框

Java png屏幕截图周围的黑色边框,java,selenium,screenshot,Java,Selenium,Screenshot,下面是我为拍摄活动窗口的屏幕截图而编写的代码。但是,我不确定为什么图像周围有黑色边框。如果我的代码有任何错误,请帮助并告诉我 Robot robot; //create robot instance robot = new Robot(); //gets and saves a reference to a new Robot robot.delay(3000); //delay robot for 3 seconds //get dimension

下面是我为拍摄活动窗口的屏幕截图而编写的代码。但是,我不确定为什么图像周围有黑色边框。如果我的代码有任何错误,请帮助并告诉我

    Robot robot; //create robot instance
    robot = new Robot(); //gets and saves a reference to a new Robot    

    robot.delay(3000); //delay robot for 3 seconds 

    //get dimensions of the bounding rectangle of the specified window
    WinDef.HWND hwnd = User32.INSTANCE.GetForegroundWindow(); 
    RECT WindowDimensions = new RECT(); 
    //get screen coordinates of upper-left and lower-right corners of the window in dimensionsOfWindow
    User32.INSTANCE.GetWindowRect(hwnd, WindowDimensions); 
    //capture image of only active window
    BufferedImage screenFullImage = robot.createScreenCapture(WindowDimensions.toRectangle());

    //write buffered image to file
    try{ 
        //File f = new File(dir + "\\screenshot " + createTimeStampStr() + ".png");  //file path of output
        File f = new File("D:\\screenshot " + createTimeStampStr() + ".png");  //file path of output
        ImageIO.write(screenFullImage, "png", f);
    }catch(IOException e){
        System.out.println("Error: " + e);
    } 

我认为这是机器人框架,特别是这部分BuffereImage screenFullImage=Robot.createScreenCapture(WindowDimensions.toRectangle());相反,用Selenium截图itself@SlavKurochkin我曾尝试使用selenium本身拍摄屏幕截图,但我只想拍摄窗口本身,而不是整个网页(如果该网页位于facebook上)。只是一个观察。看起来黑色边框位于图像周围,而不是图像顶部。如果API中有裁剪函数,您可能只需裁剪N个像素,屏幕截图没有黑色边框。您是否尝试过使用
driver.manage().window().getSize()
获取
Dimension()
对象。检查@dale裁剪功能只能根据窗口大小工作,因此如果我使用另一台具有不同窗口大小的计算机,该功能将无法按预期工作。我认为这是Robot framework,特别是这部分BuffereImage screenFullImage=Robot.CreateScreateScreenCapture(WindowDimensions.toRectangle());相反,用Selenium截图itself@SlavKurochkin我曾尝试使用selenium本身拍摄屏幕截图,但我只想拍摄窗口本身,而不是整个网页(如果该网页位于facebook上)。只是一个观察。看起来黑色边框位于图像周围,而不是图像顶部。如果API中有裁剪函数,您可能只需裁剪N个像素,屏幕截图没有黑色边框。您是否尝试过使用
driver.manage().window().getSize()
获取
Dimension()
对象。检查@dale裁剪功能只能根据窗口大小工作,因此如果我使用另一台具有不同窗口大小的计算机,该功能将无法按预期工作。