pkgsrc/graphics/jpeg/files/exifautotran
tnn 4646b00220 Adopt some new features from www.jpegclub.org that have already been
adopted by many Linux distributions as well as FreeBSD ports:

o jpegtran: add "-perfect" switch:
    Fail if there are non-transformable edge blocks.
o jpegtran: add "-crop" switch:
    Crop to a rectangular subarea.
o jpegtran: correct EXIF handling.
o jpegexiforient: Get and set the Exif Orientation Tag.
o exifautotran: Transforms Exif files so that Orientation becomes 1.

Suggested by dzoe on #NetBSD IRCNet.
2007-06-05 22:07:25 +00:00

38 lines
804 B
Bash

#! /bin/sh
#
# Based on http://www.jpegclub.org/exifautotran.txt
#
if [ "$#" = "0" ]
then
cat << EOF 1>&2
usage: exifautotran [list of files]
Transforms Exif files so that Orientation becomes 1
EOF
exit 1
fi
for i
do
case `jpegexiforient -n "$i"` in
1) transform="";;
2) transform="-flip horizontal";;
3) transform="-rotate 180";;
4) transform="-flip vertical";;
5) transform="-transpose";;
6) transform="-rotate 90";;
7) transform="-transverse";;
8) transform="-rotate 270";;
*) transform="";;
esac
if test -n "$transform"; then
echo Executing: jpegtran -copy all $transform $i
jpegtran -copy all $transform "$i" > tempfile
if test $? -ne 0; then
echo Error while transforming $i - skipped.
else
rm "$i"
mv tempfile "$i"
jpegexiforient -1 "$i" > /dev/null
fi
fi
done