Page 1 sur 3

Ligne de commande exacte pour convertir le format de plusieurs images en même temps dans un répertoire

Posté : dim. 2 févr. 2020 02:53
par Linuxing
Bonsoir, ;)

En supposant que le dossier contenant les images s'appelle canon, voici la commande que j'ai appliquée pour convertir le format de plusieurs images en même temps, en me rendant directement dans le dossier concerné :

Code : Tout sélectionner

cd /home/linuxing/canon
Une fois dans le répertoire, j'ai essayé plusieurs commandes pour modifier des fichiers NEF en jpeg, notamment celle-ci :

Code : Tout sélectionner

convert *.NEF autre.jpeg
J'ai aussi essayé de glisser plusieurs images dans le Terminal, mais tout au plus il ne me convertit qu'un seul fichier :cry:
Je suis certain que je n'ai pas la syntaxe correcte et un tuyau serait le bienvenu ;)

Merci

Re: Ligne de commande exacte pour convertir le format de plusieurs images en même temps dans un répertoire

Posté : dim. 2 févr. 2020 07:48
par arghlub
Salut,

Le souci de ta commande, c'est qu'il n'y a qu'un seul nom pour les fichiers de sortie.

Tente plutôt de faire ça avec une boucle :

Code : Tout sélectionner

for i in *.NEF; do convert "$i" "${i%.NEF}.jpeg"; done
Sinon passe par mogrify :

Code : Tout sélectionner

mogrify -format jpeg *.NEF
Je ne connais pas le format NEF (à priori un format propriétaire Nikon), je ne sais pas si imagemagick le prend en compte (mais je pense que oui).
Fais des tests en copiant d'abord tes images dans un nouveau dossier-test avant d'essayer ces commandes pour éviter de faire des bêtises.

Re: Ligne de commande exacte pour convertir le format de plusieurs images en même temps dans un répertoire

Posté : dim. 2 févr. 2020 09:21
par tioker
Comme le dit @arghlub, la commande mogrify est magique.
Je n'avais pas de fichier .nef, j'ai donc passé la commande inverse:

Code : Tout sélectionner

mogrify -format NEF *.JPG
et ça fonctionne.
Si je me souviens bien, mogrify est inclus dans le paquet imagemagick qu'on installe de la manière suivante : sudo apt install imagemagick
Texte barré pour éviter toute confusion. Merci @arghlub
Voilà.

Re: Ligne de commande exacte pour convertir le format de plusieurs images en même temps dans un répertoire

Posté : dim. 2 févr. 2020 10:02
par arghlub
Salut tioker,

Oui convert et mogrify (ainsi que identify, compare, display, composite, montage, animate...) font bien partie du paquet imagemagick.
imagemagick est installé par défaut sur LinuxMint (comme sur beaucoup d'autres distros).
;)

Re: Ligne de commande exacte pour convertir le format de plusieurs images en même temps dans un répertoire

Posté : dim. 2 févr. 2020 16:24
par Linuxing
Merci aux précédents intervenants :)

En fait, j'ai pu convertir tous mes fichiers .NEF en .jpeg, mais un à un, comme ceci :

Code : Tout sélectionner

convert photo.NEF newphoto.jpeg 
Et cela a très bien marché, c'est la conversion de plusieurs fichiers en même temps qui a foiré :mrgreen:

Le problème ne serait donc pas lié au fichier .NEF en soi :?:

En fait, l'astérisque de la commande doit rester ou cela symbolise-t-il le nouveau nom alloué au fichier converti :?:

Re: Ligne de commande exacte pour convertir le format de plusieurs images en même temps dans un répertoire

Posté : dim. 2 févr. 2020 16:33
par arghlub
t'es sur d'avoir testé les commandes citées ci-dessus ??

Re: Ligne de commande exacte pour convertir le format de plusieurs images en même temps dans un répertoire

Posté : dim. 2 févr. 2020 17:46
par Linuxing
J'ai essayé ta commande, mais avec un autre format que le NEF car j'ai viré ces fichiers-là :

Code : Tout sélectionner

mogrify -format jpg *.png
Et cela ne me modifie qu'un seul fichier, pas les autres. :evil:
L'astérisque doit-il rester dans la syntaxe ou est-ce un symbole destiné à être remplacé par des éléments :?:

Re: Ligne de commande exacte pour convertir le format de plusieurs images en même temps dans un répertoire

Posté : dim. 2 févr. 2020 18:11
par ryry331
Bonjour,

Si ça peut convenir, (a essayer) j'ai un nautilus-script qui peut fonctionner sur tout les gestionnaires de fichiers que je place dans .local/share/nemo/scripts pour Cinnamon et dans Xfce → Actions personnalisées ou j'indique le chemin du script
c'est pratique puisse que ça s'applique d'un clic droit sur une sélection de fichiers
Ne pas oublier de rendre exécutable en cochant la case exécuter comme un programme Clic droit sur le script puis dans Propriétés → Permissions

Code : Tout sélectionner

#!/bin/bash

while [ $# -gt 0 ]; do
	picture=$1
	jpg_file=`echo "$picture" | sed 's/\.\w*$/.jpg/'`
	/usr/bin/convert -quality 75 "$picture" jpeg:"$jpg_file"
	shift
done

Re: Ligne de commande exacte pour convertir le format de plusieurs images en même temps dans un répertoire

Posté : dim. 2 févr. 2020 20:48
par yano1966
Je suis photographe amateur passionné et ne travaille qu'avec des fichiers RAW (NEF chez Nikon).
Convertir des NEF en JPEG en ligne de commande est un non-sens. Il faut utiliser un logiciel de dématriçage tel que Darktable ou Rawtherapee qui va te produire une courbe de sortie professionnelle qui aura un résultat photo de qualité !
Sinon, aucun intérêt de prendre tes clichés en NEF, autant les prendre en JPEG directement depuis l'appareil photo.
Je rappelle qu'on prend des clichés en RAW UNIQUEMENT pour pouvoir les développer à sa convenance dans un logiciel de retouche photo.

Re: Ligne de commande exacte pour convertir le format de plusieurs images en même temps dans un répertoire

Posté : dim. 2 févr. 2020 22:14
par Linuxing
@ yano1966 ;)

Un grand merci pour ton explication sur le format RAW. En fait, j'avais des fichiers NEF parce que je les avais reçus tels quels par quelqu'un ; mon but n'était pas de travailler sur ces photos et je les ai converties pour gagner de la place. Ils s'agissait bien des seuls fichiers que j'avais dans ce type de format :)

@ ryry331, ;)

J'ai créé ce script et je l'ai rendu exécutable :) Mais ce dont j'ai besoin, avec un exemple, c'est la méthode pour l'utiliser et faire en sorte qu'il change le format des fichiers dans un dossier donné ;) Merci

Tout ceci me paraît toutefois pas si simple, moi qui pensais qu'il suffisait de se loger dans un dossier et d'exécuter une commande comme je l'avais fait plus haut :lol: