web-dev-qa-db-fra.com

Comment faire pivoter les images automatiquement, basé sur les données EXIF

Lorsque je fais des photos avec mon appareil photo (Olympus E-520), dans les données EXIF, l'orientation est stockée.

La visionneuse d'images standard sur Ubuntu affiche correctement ces images. Windows Viewer Cependant, pas.

Existe-t-il un moyen de faire pivoter ces images (si nécessaire selon EXIF) dans un lot sur Ubuntu? Par exemple avec un outil ImageMagick?

31
Peter Smit

exiftran et JHehead (jhead -autorot) peut faire cela. exiftran peut faire cela sans perte, pas sûr de jhead.

39
user7963

L'outil de convertir de l'imagemagick a un drapeau - auto-orient qui devrait faire le travail.

#!/bin/bash

JHEAD=jhead
SED=sed
CONVERT=convert

for f in *.jpg
do
        orientation=$($JHEAD -v $f | $SED -nr 's:.*Orientation = ([0-9]+).*:\1:p')

        if [ -z $orientation ]
        then
                orientation=0
        fi

        if [ $orientation -gt 1 ]
        then
                echo Rotating $f...
                mv $f $f.bak
                $CONVERT -auto-orient $f.bak $f
        fi
done

J'ai jeté un script rapide pour itérer sur * .jpg dans le répertoire actuel. Vous pouvez facilement modifier cela pour prendre un chemin (1 $) ou tout ce dont vous avez besoin.

12
opello