52 lines
1.4 KiB
Bash
Executable File
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
|