Mercurial > geeqie.yaz
annotate plugins/rotate/geeqie-rotate @ 1752:7cd0f91329e2
import 1768 and 1789 together
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Fri, 29 Jan 2010 19:16:00 +0900 |
parents | 61bd3a2f633d |
children |
rev | line source |
---|---|
1641 | 1 #!/bin/bash -x |
2 | |
3 # This is a helper script that rotate image files according to the metadata | |
4 # requirements: ImageMagick, exiftran, exiv2 | |
5 | |
6 GQ_METADATA_DIR="$HOME/.local/share/geeqie/metadata" | |
1614
f6c8b76d41ca
Add .desktop files to restore lossless jpeg rotation via editors.
zas_
parents:
diff
changeset
|
7 |
1641 | 8 rotate() |
9 { | |
10 ext=`echo "${1##*.}" |tr "[:upper:]" "[:lower:]"` | |
11 [ "x$ext" == "x" ] && return 1 #no extension | |
12 | |
13 gq_metadata="$GQ_METADATA_DIR/$1.gq.xmp" | |
14 if [ -f "$gq_metadata" ]; then | |
15 gq_orientation=`exiv2 -PXkv "$gq_metadata"|grep Xmp.tiff.Orientation|sed -e "s|Xmp.tiff.Orientation *||"` | |
16 else | |
17 gq_orientation= | |
18 fi | |
1614
f6c8b76d41ca
Add .desktop files to restore lossless jpeg rotation via editors.
zas_
parents:
diff
changeset
|
19 |
1641 | 20 case "$ext" in |
21 jpg|jpeg) | |
22 [ -n "$gq_orientation" ] && exiv2 -M "set Exif.Image.Orientation $gq_orientation" "$1" | |
23 if exiftran -aip "$1" ; then | |
24 # exiftran ignores xmp, set it manually | |
25 exiv2 -M "set Xmp.tiff.Orientation 1" "$1" | |
26 #http://dev.exiv2.org/issues/show/639 | |
27 [ -n "$gq_orientation" ] && exiv2 -M "set Xmp.tiff.Orientation 1" \ | |
28 -M "set Exif.Image.Orientation 1" "$gq_metadata" | |
29 return 0 | |
30 fi | |
31 ;; | |
32 | |
33 tif|tiff|png) | |
34 [ -n "$gq_orientation" ] && exiv2 -M "set Exif.Image.Orientation $gq_orientation" "$1" | |
35 if mogrify -auto-orient "$1" ; then | |
36 # mogrify ignores xmp, set it manually | |
37 exiv2 -M "set Xmp.tiff.Orientation 1" "$1" | |
38 #http://dev.exiv2.org/issues/show/639 | |
39 [ -n "$gq_orientation" ] && exiv2 -M "set Xmp.tiff.Orientation 1" \ | |
40 -M "set Exif.Image.Orientation 1" "$gq_metadata" | |
41 return 0 | |
42 fi | |
43 ;; | |
44 *) #not supported | |
45 return 0 | |
46 ;; | |
47 esac | |
48 } | |
1614
f6c8b76d41ca
Add .desktop files to restore lossless jpeg rotation via editors.
zas_
parents:
diff
changeset
|
49 |
1717
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
50 get_sidecars= |
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
51 if [ "x$1" == "x-g" ] ; then |
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
52 get_sidecars=yes |
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
53 shift |
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
54 fi |
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
55 |
1641 | 56 # iterate over files on commandline |
1614
f6c8b76d41ca
Add .desktop files to restore lossless jpeg rotation via editors.
zas_
parents:
diff
changeset
|
57 for file in "$@" ; do |
1717
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
58 if [ -n "$get_sidecars" ] ; then |
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
59 # we got only one file for each group, typically the main one |
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
60 # get the sidecars: |
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
61 geeqie -r --get-sidecars:"$file" |while read sidecar ; do |
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
62 # the main file is included in the sidecar file list, no special handling is required |
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
63 rotate "$sidecar" |
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
64 done |
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
65 else |
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
66 rotate "$file" |
61bd3a2f633d
added possibility to use geeqie-rotate as a standalone script
nadvornik
parents:
1641
diff
changeset
|
67 fi |
1614
f6c8b76d41ca
Add .desktop files to restore lossless jpeg rotation via editors.
zas_
parents:
diff
changeset
|
68 done |
1641 | 69 |