rotateImageExif.sh 3.06 KB
Newer Older
Zéfling's avatar
Zéfling committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#! /bin/bash
#
# Exif Orientation remover
# Version 1.0
#
# -----------------------------------------------------------------------------
# The MIT License (MIT)
#
# Copyright (c) 2014-04-23 Zéfling
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
# -----------------------------------------------------------------------------
#

echo "------------------------------------------------------"
echo "----------- EXIF ORIENTATION REMOVER -----------------"
echo "------------------------------------------------------"
echo
echo " Picture rotation start "
 
# create a new folder
[ -d rotated ] ||mkdir rotated
 
# get the .JPG extensions and rename them in .jpg
#
LISTJPG=`ls -l |grep JPG |tail -n 1|awk {'print $8'}`
 
echo $LISTJPG
 
if [ $LISTJPG ]
then
	echo "------------------------------------------------------"
	echo "Rename .JPG extension in .jpg"
 
	for i in *.JPG
	do
		NEWNAME=`ls |grep "$i"|cut -d "." -f1`
		mv "$i" "$NEWNAME.jpg"
		echo " - changing JPG to jpg for $i"
	done
fi
 
# is there any .jpg to process in this folder ?
#
LISTJPG=`ls -l |grep jpg |tail -n 1 |awk {'print $8'}`
INDEX=1
 
if [ $LISTJPG ]
then
 
	# size of list
	SIZE=`find . -maxdepth 1 -name "*.jpg" -type f | wc -l`
	echo "------------------------------------------------------"
 
	find . -maxdepth 1 -name "*.jpg" -type f | while read -r i
	do
		# delete ./ 
		i=${i:2}
 
		ORIENTATION=`LANG=en exiv2 pr -p t "$i" 2>/dev/null | grep -a "Exif.Image.Orientation" | awk {'print $4 $5'}`
 
		echo " $INDEX / $SIZE : “$i” has orientation “$ORIENTATION”"
 
		if [ "$ORIENTATION" = "left,bottom" ]
		then
			echo "      --> rotation left"
			convert "$i" -rotate -90 rotated/"$i"
			LANG=en exiv2 -M "set Exif.Image.Orientation Short 1" rotated/"$i"
 
		elif [ "$ORIENTATION" = "right,top" ]
		then
			echo "      --> rotation rigth"
			convert "$i" -rotate 90 rotated/"$i"
			LANG=en exiv2 -M "set Exif.Image.Orientation Short 1" rotated/"$i"
 
		else
			echo "      --> no rotation"
			cp "$i" rotated/
		fi
 
		((INDEX++))
	done
fi
echo "------------------------------------------------------"
 
echo
echo "operation completed"
echo