Files
photoassistant/utils/pa_exifautotran

52 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
# pa_exifautotran [list of files]
#
# Transforms JPEG files so that Exif Orientation becomes 1
#
# blatant copy of exitautotran shell script with:
# Minor change made to ignore failure of jpegtran (it was failing
# b/c Samsung images are incomplete, but the rotation works)
for i
do
case $i in
-v|--version) echo "$0 (pa variant)"; exit 0;;
-h|--help)
cat <<EOF
$0 [list of files]
Transforms JPEG files so that Exif Orientation becomes 1
EOF
exit 0;;
esac
case $(jpegexiforient "$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" >&2
jpegtran -copy all $transform "$i" > tempfile 2> err
ret=$?
err=`cat err`
if [ "$ret" = "2" ] && [ "$err" != "Invalid SOS parameters for sequential JPEG" ]; then
echo "$0: FAILED to rotate jpeg with unknown failure - dont change file"
rm err
rm tempfile
exit 1
fi
# last sanity check - make sure tempfile is not empty
if [ -s tempfile ]; then
rm err
mv tempfile "$i"
jpegexiforient -1 "$i" > /dev/null
fi
fi
done