使用 im4java 进行图像比较


public class im4jav extends test{
public static void main(String[] args) throws IOException {
    WebDriver driver = new FirefoxDriver();
    driver.get("https://www.google.co.in/?gfe_rd=cr&ei=fkKzVqasB8yl8wefrraoCg&gws_rd=ssl");
    File scrFile = ((TakesScreenshot)driver).
    getScreenshotAs(OutputType.FILE);
    String current = "c:/temp/image.png";
    FileUtils.copyFile(scrFile, new File(current));

    boolean compareSuccess = compareImages("c:/temp/expected.png", current, "c:/temp/difference.png");
    System.out.println("run ok ? :"+compareSuccess);
    driver.close();

}}class test{
static boolean compareImages (String exp, String cur, String diff) {
      // This instance wraps the compare command
      CompareCmd compare = new CompareCmd();
      // For metric-output
      compare.setErrorConsumer(StandardStream.STDERR);
      IMOperation cmpOp = new IMOperation();
      // Set the compare metric
      cmpOp.metric("mae");
      // Add the expected image
      cmpOp.addImage(exp);
      // Add the current image
      cmpOp.addImage(cur);
      // This stores the difference
      cmpOp.addImage(diff);
      try {
        // Do the compare
        compare.run(cmpOp);
        return true;
      }
      catch (Exception ex) {
        return false;
      }
    }

}

嗨团队,

在上面的代码中,我尝试截取页面的屏幕截图,并使用im4java将其与预期的屏幕截图进行比较,但是即使实际图像和预期图像相似,它仍然会抛出false,并且差异图像也没有生成

我已经在临时文件夹中添加了预期的屏幕截图。

有人可以建议我做错了什么。提前致谢

我花了太多时间来解决这个问题。解决方案是:

  1. 您应该通过选中所有复选框来完全安装ImageMagick。
  2. 应将其安装路径设置为环境变量系统路径。
  3. 可选:重新启动电脑,这些设置将起作用正确。

通过这些步骤,我解决了我的问题。

相关内容

  • 没有找到相关文章

最新更新