generate_png_diff.sh - Generate visual diffs for modified PNG images#
Description#
This script compares PNG images in the git repository that have been modified against their original versions (from HEAD). It generates visual difference images and calculates Mean Absolute Error (MAE) statistics for each comparison.
Usage#
./generate_png_diff.sh [modified_dir]
Parameters#
modified_dir - Directory containing the modified images (optional)
Default: “209827/local/LocalOutputs”
Output Files#
{modified_dir}/diffs/diff_{image_name}.png
- Visual diff imagesgenerated/image_diff_stats.txt
- Summary statistics filegenerated/image_diff_stats.txt.raw
- Detailed comparison output
Dependencies#
ImageMagick (magick command with composite and compare tools)
Git (for retrieving original images and detecting changes)
Examples#
# Use default directory
./generate_png_diff.sh
# Use custom directory
./generate_png_diff.sh "custom/output/directory"
How It Works#
File Discovery: Scans git for modified PNG files using
git diff --name-only HEAD
Image Extraction: Retrieves original images from git HEAD into temporary files
Visual Diff Generation: Uses ImageMagick’s composite tool with difference mode to create visual diffs
Statistical Analysis: Calculates Mean Absolute Error (MAE) using ImageMagick’s compare tool
Output Generation: Creates summary statistics and detailed comparison logs
Output Format#
The script generates two types of output files:
Summary file (
image_diff_stats.txt
): Contains filename and MAE value for each imageRaw file (
image_diff_stats.txt.raw
): Contains detailed ImageMagick compare output
Visual difference images are saved in the {modified_dir}/diffs/
directory with the prefix diff_
.