summaryrefslogtreecommitdiff
path: root/exifautotran.sh
diff options
context:
space:
mode:
Diffstat (limited to 'exifautotran.sh')
-rwxr-xr-xexifautotran.sh41
1 files changed, 41 insertions, 0 deletions
diff --git a/exifautotran.sh b/exifautotran.sh
new file mode 100755
index 0000000..fd5105e
--- /dev/null
+++ b/exifautotran.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+# exifautotran [list of files]
+#
+# Transforms Exif files so that Orientation becomes 1
+#
+for i
+do
+ case $i in
+ -v|--version) echo "exifautotran"; exit 0;;
+ -h|--help)
+ cat <<EOF
+exifautotran [list of files]
+
+Transforms Exif files so that Orientation becomes 1
+EOF
+ exit 0;;
+ esac
+
+ 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 >&2
+ jpegtran -copy all $transform "$i" > tempfile
+ if test $? -ne 0; then
+ echo Error while transforming $i - skipped. >&2
+ else
+ rm "$i"
+ mv tempfile "$i"
+ jpegexiforient -1 "$i" > /dev/null
+ fi
+ fi
+done