Add GraphicMagick compatibility
GraphicMagick branched off ImageMagick's version 5.5.2 in 2002 after irreconcilable differences emerged in the developers' group.[1] Some systems might have GraphicMagick and diff-image works just fine with it, so add a few lines to automatically support it as well, but expect users to install the compatibility package that adds the symlinks for commands 'compare' and 'montage'. [1] https://en.wikipedia.org/wiki/GraphicsMagick Closes: #37
This commit is contained in:
10
README.md
10
README.md
@ -38,8 +38,9 @@ $ diff-image anImageThatHasChanged1.jpg anImageThatHasChanged2.jpg
|
|||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
|
|
||||||
1. Install exiftool and ImageMagick. (The script will cope with these missing,
|
1. Install exiftool and ImageMagick or ImageMagick with the compatibility links.
|
||||||
but it's not going to be very exciting without them).
|
(The script will cope with these missing, but it's not going to be very exciting
|
||||||
|
without them).
|
||||||
|
|
||||||
macOS:
|
macOS:
|
||||||
|
|
||||||
@ -58,6 +59,11 @@ but it's not going to be very exciting without them).
|
|||||||
sudo apt install exiftool imagemagick xdg-open
|
sudo apt install exiftool imagemagick xdg-open
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Debian / Ubuntu (if using GraphicsMagick):
|
||||||
|
```bash
|
||||||
|
sudo apt install exiftool graphicsmagick graphicsmagick-imagemagick-compat xdg-utils
|
||||||
|
```
|
||||||
|
|
||||||
Arch Linux:
|
Arch Linux:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
18
diff-image
18
diff-image
@ -161,7 +161,16 @@ if \
|
|||||||
! which compare > /dev/null || \
|
! which compare > /dev/null || \
|
||||||
! which montage > /dev/null
|
! which montage > /dev/null
|
||||||
then
|
then
|
||||||
echo 'ImageMagick is not installed.' >&2
|
if which gm > /dev/null
|
||||||
|
then
|
||||||
|
echo 'GraphicsMagick is installed, but graphicsmagick-imagemagick-compat missing.' >&2
|
||||||
|
echo 'Alternatively the minimum required compatibility links can be installed' >&2
|
||||||
|
echo 'by running:' >&2
|
||||||
|
echo ' sudo ln -s gm /usr/bin/compare' >&2
|
||||||
|
echo ' sudo ln -s gm /usr/bin/montage' >&2
|
||||||
|
else
|
||||||
|
echo 'ImageMagick or GraphicsMagick is not installed.' >&2
|
||||||
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -199,8 +208,15 @@ fi
|
|||||||
density_flag=
|
density_flag=
|
||||||
do_compare()
|
do_compare()
|
||||||
{
|
{
|
||||||
|
if which gm > /dev/null
|
||||||
|
then
|
||||||
|
echo "NOTICE: GraphicsMagick does not support 'compare -fuzz', so omitting it"
|
||||||
|
compare $density_flag $color_flag $backgroundcolor_flag -file png:- "$f1" "$f2" | \
|
||||||
|
montage $density_flag -geometry +4+4 $backgroundcolor_flag "$f1" - "$f2" png:- >"$destfile" 2>/dev/null || true
|
||||||
|
else
|
||||||
compare $density_flag $color_flag $fuzz_flag $backgroundcolor_flag "$f1" "$f2" png:- | \
|
compare $density_flag $color_flag $fuzz_flag $backgroundcolor_flag "$f1" "$f2" png:- | \
|
||||||
montage $density_flag -geometry +4+4 $backgroundcolor_flag "$f1" - "$f2" png:- >"$destfile" 2>/dev/null || true
|
montage $density_flag -geometry +4+4 $backgroundcolor_flag "$f1" - "$f2" png:- >"$destfile" 2>/dev/null || true
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
if which xdg-open > /dev/null
|
if which xdg-open > /dev/null
|
||||||
|
Reference in New Issue
Block a user