这是最好的方法。无需保留变量来判断图像是否仍然相等。如果条件为假,只需立即返回假。短路评估可帮助节省比较失败后在像素上循环的时间,就像trumpetlick的回答中那样。
public static boolean compareImages(BufferedImage imgA, BufferedImage imgB) { // The images must be the same size. if (imgA.getWidth() != imgB.getWidth() || imgA.getHeight() != imgB.getHeight()) { return false; } int width = imgA.getWidth(); int height = imgA.getHeight(); // Loop over every pixel. for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { // Compare the pixels for equality. if (imgA.getRGB(x, y) != imgB.getRGB(x, y)) { return false; } } } return true;}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)