web-dev-qa-db-fra.com

Comment faire pivoter un ensemble d'images de la ligne de commande?

J'ai un grand ensemble d'images JPEG avec la même résolution. Il faudrait trop de temps pour ouvrir chacun à l'intérieur de l'interface graphique d'Imagemagic ou Gimp.

Comment puis-je réaliser chaque image en cours de rotation et enregistrée comme le même nom de fichier?

17
sharkant

Vous pouvez utiliser la commande convert:

 convert input.jpg -rotate -degrees out.jpg

par exemple:

convert input.jpg -rotate -180 out.jpg

Enregistrez-le avec le même nom:

convert file.jpg -rotate -180 file.jpg

Faites pivoter tous les fichiers:

for photo in *.jpg ; do convert $photo -rotate 90 $photo ; done

Edit

Vous pouvez utiliser les outils de ligne de commande mogrify (le meilleur outil) recommandé par @ don-crissti

mogrify -rotate 90 *.jpg
25
GAD3R

Pour les images JPEG et les rotations d'angle droit, utilisez jpegtran ou exiftran , car ils peuvent faire pivoter les images sans perte.

for f in *.jpg ; do 
    jpegtran -rotate 180 "$f" > "${f%.jpg}-rotated.jpg"
done

Ou faire pivoter sur place:

for f in *.jpg ; do
    jpegtran -rotate 180 -outfile "$f" "$f"
done

exiftran a aussi le -a Drapeau Pour faire pivoter automatiquement l'image en fonction de ce que dit l'étiquette d'orientation exif.

16
ilkkachu