我们可以使用image-comparison
来在java
中进行两个文件的对比:
项目地址:https://github.com/romankh3/image-comparison
它会自动生成对比后带红框的对比图,还能返回这些正方形的信息
首先引入GAV
:
<dependency>
<groupId>com.github.romankh3</groupId>
<artifactId>image-comparison</artifactId>
<version>4.4.0</version>
</dependency>
使用:
//load images to be compared:
BufferedImage expectedImage = ImageComparisonUtil.readImageFromResources("expected.png");
BufferedImage actualImage = ImageComparisonUtil.readImageFromResources("actual.png");
//Create ImageComparison object and compare the images.
ImageComparisonResult imageComparisonResult = new ImageComparison(expectedImage, actualImage).compareImages();
//Check the result
assertEquals(ImageComparisonState.MATCH, imageComparisonResult.getImageComparisonState());
这里是对比俩文件是否相同,在这个imageComparisonResult
中还包含了其他的信息,这里就不一一列举了,可以在项目介绍中看到
如果我们要生成对比后的图,用下面的方式即可
//load images to be compared:
BufferedImage expectedImage = ImageComparisonUtil.readImageFromResources("expected.png");
BufferedImage actualImage = ImageComparisonUtil.readImageFromResources("actual.png");
// where to save the result (leave null if you want to see the result in the UI)
File resultDestination = new File( "result.png" );
//Create ImageComparison object with result destination and compare the images.
ImageComparisonResult imageComparisonResult = new ImageComparison(expectedImage, actualImage, resultDestination).compareImages();
resultDestination
也可以传路径