| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 | 2 |
| 3 """ | 3 """ |
| 4 Copyright 2013 Google Inc. | 4 Copyright 2013 Google Inc. |
| 5 | 5 |
| 6 Use of this source code is governed by a BSD-style license that can be | 6 Use of this source code is governed by a BSD-style license that can be |
| 7 found in the LICENSE file. | 7 found in the LICENSE file. |
| 8 | 8 |
| 9 Calulate differences between image pairs, and store them in a database. | 9 Calulate differences between image pairs, and store them in a database. |
| 10 """ | 10 """ |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 actual_images_subdir: the subdirectory actual images are stored in. | 84 actual_images_subdir: the subdirectory actual images are stored in. |
| 85 image_suffix: the suffix of images. | 85 image_suffix: the suffix of images. |
| 86 """ | 86 """ |
| 87 expected_image_locator = _sanitize_locator(expected_image_locator) | 87 expected_image_locator = _sanitize_locator(expected_image_locator) |
| 88 actual_image_locator = _sanitize_locator(actual_image_locator) | 88 actual_image_locator = _sanitize_locator(actual_image_locator) |
| 89 | 89 |
| 90 # Download the expected/actual images, if we don't have them already. | 90 # Download the expected/actual images, if we don't have them already. |
| 91 # TODO(rmistry): Add a parameter that makes _download_and_open_image raise | 91 # TODO(rmistry): Add a parameter that makes _download_and_open_image raise |
| 92 # an exception if images are not found locally (instead of trying to | 92 # an exception if images are not found locally (instead of trying to |
| 93 # download them). | 93 # download them). |
| 94 expected_image = _download_and_open_image( | 94 expected_image_file = os.path.join( |
| 95 os.path.join(storage_root, expected_images_subdir, | 95 storage_root, expected_images_subdir, |
| 96 str(expected_image_locator) + image_suffix), | 96 str(expected_image_locator) + image_suffix) |
| 97 expected_image_url) | 97 actual_image_file = os.path.join( |
| 98 actual_image = _download_and_open_image( | 98 storage_root, actual_images_subdir, |
| 99 os.path.join(storage_root, actual_images_subdir, | 99 str(actual_image_locator) + image_suffix) |
| 100 str(actual_image_locator) + image_suffix), | 100 try: |
| 101 actual_image_url) | 101 expected_image = _download_and_open_image( |
| 102 expected_image_file, expected_image_url) |
| 103 except Exception: |
| 104 logging.exception('unable to download expected_image_url %s to file %s' % |
| 105 (expected_image_url, expected_image_file)) |
| 106 raise |
| 107 try: |
| 108 actual_image = _download_and_open_image( |
| 109 actual_image_file, actual_image_url) |
| 110 except Exception: |
| 111 logging.exception('unable to download actual_image_url %s to file %s' % |
| 112 (actual_image_url, actual_image_file)) |
| 113 raise |
| 102 | 114 |
| 103 # Generate the diff image (absolute diff at each pixel) and | 115 # Generate the diff image (absolute diff at each pixel) and |
| 104 # max_diff_per_channel. | 116 # max_diff_per_channel. |
| 105 diff_image = _generate_image_diff(actual_image, expected_image) | 117 diff_image = _generate_image_diff(actual_image, expected_image) |
| 106 diff_histogram = diff_image.histogram() | 118 diff_histogram = diff_image.histogram() |
| 107 (diff_width, diff_height) = diff_image.size | 119 (diff_width, diff_height) = diff_image.size |
| 108 self._weighted_diff_measure = _calculate_weighted_diff_metric( | 120 self._weighted_diff_measure = _calculate_weighted_diff_metric( |
| 109 diff_histogram, diff_width * diff_height) | 121 diff_histogram, diff_width * diff_height) |
| 110 self._max_diff_per_channel = _max_per_band(diff_histogram) | 122 self._max_diff_per_channel = _max_per_band(diff_histogram) |
| 111 | 123 |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 | 433 |
| 422 Args: | 434 Args: |
| 423 expected_image_locator: locator string pointing at expected image | 435 expected_image_locator: locator string pointing at expected image |
| 424 actual_image_locator: locator string pointing at actual image | 436 actual_image_locator: locator string pointing at actual image |
| 425 | 437 |
| 426 Returns: already-sanitized locator where the diffs between expected and | 438 Returns: already-sanitized locator where the diffs between expected and |
| 427 actual images can be found | 439 actual images can be found |
| 428 """ | 440 """ |
| 429 return "%s-vs-%s" % (_sanitize_locator(expected_image_locator), | 441 return "%s-vs-%s" % (_sanitize_locator(expected_image_locator), |
| 430 _sanitize_locator(actual_image_locator)) | 442 _sanitize_locator(actual_image_locator)) |
| OLD | NEW |