# Copyright (c) 2011 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Compare two images for equality."""
from PIL import Image
from PIL import ImageChops
def Compare(file1, file2, **kwargs):
"""Compares two images to see if they're identical.
Args:
file1: path to first image to compare
file2: path to second image to compare
kwargs: unused for this operator
Returns:
None if the images are identical
A tuple of (errorstring, image) if they're not
"""
kwargs = kwargs # unused parameter
im1 = Image.open(file1)
im2 = Image.open(file2)
if im1.size != im2.size:
return ("The images are of different size (%s vs %s)" %
(im1.size, im2.size), im1)
diff = ImageChops.difference(im1, im2)
if max(diff.getextrema()) != (0, 0):
return ("The images differ", diff)
else:
return None