Mais en attendant, je dois régler ce problème de format.
Il n'y a pas de problème, il ny a que des solutions.
Avec une image truc0.jpg d'origine 2616x2488 donc de format portrait.
convert truc0.jpg -geometry x480 truc1.jpg
pour convertir une image de format portrait en 480 pixel de haut (temporaire)

convert truc1.jpg -extent 640x480-140+0 truc2.jpg
Pour créer une image 640x480 avec centrage de l'image temporaire

Il y a certainement moyen de le faire en une seule commande mais en y allant étape par étape c'est plus facile à tester et à comprendre.

Image d'origine 360x480


Image recadrée en 640x480 avec un cadre gris (pour visualiser ce cadre, mais ce n'est pas obligatoire).


Avec ImageMagick c'est MAGIQUE

Il ne reste plus qu'à écrire un script qui prend toutes les images de format portrait pour les passer à la moulinette.
Phatch est un logiciel assez pour convertir des images.
Il utilise une interface graphique simple où il suffit de placer les différentes actions qui tu veux réaliser sur tes images.
Choisir un répertoire d'entrée, un de sortie et laissez faire...

En plus il est disponible dans les dépôts !
Phatch à l'air souple comme système.

Par contre, pour faire ce que je veux faire, il faut configurer les paramètres et je n'ai pas trouvé les actions correctes, très justement décrites par pmarion.

imagemagik je vais aussi tester. Quoique j'ai une petite préférence pour le mode graphique :-x
Quoique j'ai une petite préférence pour le mode graphique
Soit tu utilises une interface graphique, avec un tas de clics de machin, soit tu utilises le mode commande avec un script.
Je me sers de gimp pour ce qui est des retouches, corrections (encore qu'ImagesMagick puisse en faire mais comme le résultat n'est pas visible directement cela n'est valable que pour une série demandant les mêmes corrections.

Si on imagine que tes images de type portrait sont dans un répertoire dans lequel tu t'es positionné avec «cd nom_répertoire»
mkdir 640x480
for fic in *.jpg 
do 
  convert $fic -geometry x480 tmp.jpg
  convert tmp.jpg -extent 640x480-140+0 640x480/$fic
  rm tmp.jpg
done
ce code composé manuellement ou mis dans un script devrait suffire à ton bonheur.

Pour faire le tri dans des images de type portrait/paysage
for fic in *.jpg
do 
  largeur=$(identify -format '%w' $fic.jpg)
  hauteur=$(identify -format '%h' $fic.jpg)
  if [ "$largeur" -gt "$hauteur" ] 
  then 
     echo $fic paysage
  else 
     echo $fic portrait 
  fi
done
Au début (et même par la suite) il est plus prudent de travailler avec des copies et non pas les originaux.
Ok, ça me semble bien aussi 😉

parc contre, j'ai tenté de copier/coller le contenu des 2 commandes dans un gedit

2 questions toutes bêtes, comment je fais un script à parti de là et comment je l'actionne ?
Pour faire un script il suffit d'n éditeur et de stocker dedans la suite de commandes.
Ensuite pour exécuter le plus simple est d'invoquer le shell :
bash nom_script

Mais cette méthode simpliste n'est pas la meilleure. En effet
- le fait de devoir toujours spécifier ke nom «bash» devant le nom du script est pénibles pour les paresseux (tous les utilisateurs du mode commande le sont)
- le fait de devoir spécifier le nom ou le chemin complet du script est vite pénible

C'est un peut plus long à paramétrer, mais très facile quand même.
Tout d'abord un exécutable a tout intérêt à se situer dans un répertoire contenu dans le PATH (faire un «echo $PATH»), donc dans /usr/bin (plutôt réservé à «root»), ou dans ~/bin (ton répertoire personnel pour les exécutables).
Un exécutable doit avoir des droits d'exécution «x» pour l'utilisateur, et/ou le groupe ou les autres («chmod 755 bin/nom_script»)
Un exécutable interprété (shell, perl, python, ...) peut/doit avoir un shebang (#!/chemin_interpréteur) la première ligne doit commencer par le nom de son interpréteur

Si le répertoire ~/bin n'existe pas encore, crée le avec
mkdir ~/bin


Exemple d'un script nommé mon_script stocké dans ~/bin
#!/bin/bash 
instruction 1 
instruction 2
.......
pourra être appelé tout simplement
mon_script

Pour plus de détails sur l'écriture d'un script Voir ICI

N"hésite pas à poster tes problèmes
Ok, merci pour la peine et les infos.

Je crois que j'ai compris l'essentiel du script.

En pratique, j'ai un dossier avec des images non transformées (admettons des copies) exemple : /home/mon_user/images. Je dois donc appliquer ce script ou les commandes sur ces photos, dans ce dossier. C'est là que je pêche un peu, car j'ai testé les commandes de Imagemagik mais je ne sais pas où les exécuter. Dans le dossier directement ? Et je fais comment, je colle les commandes dans un terminal après avoir parcourru le chemin jusqu'à destination ?

Sorry, ça semble un peu confus mais voilà mon problème.
Tout ce que tu fais en mode commande (de façon répétitive) sera bien mieux dans un script, mais avant d'écrire le script il est bon d'essayer la ou les commandes en mode commande.

Les commandes d'ImageMagick sont dans /usr/bin et donc peuvent être appellées sans spécifier le chemin complet.
Par contre le source et le fichier destination pevent être spécifiés sans chemin (donc dans le répertoire courant) ou avec un chemin relatif ou absolu.
Pour mémoire
Sans chemin        ::= Un fichier est censé être dans le répertoire courant. 
répertoire courant ::= ./
Chemin relatif     ::=  images/nom_fichier_image
Chemin absolu      ::= /home/mon_login/images/nom_fichier_image
Si tu es dans le répertoire où se trouvent les images sources tu peux utiliser convert
convert nom_sce.jpg options.... nom_destination.jpg
Dans ce cas la source et la destination seront dans le répertoire courant

Mais aussi
convert nom_sce.jpg options.... /tmp/truc.jpg
Dans ce cas la destination sera toujours la même et il suffira d'avoir une visionneuse ouverte sur /tmp/truc.jpg et de faire un «refresh» pour voir le résultat.

Si tes images sont dans /home:ton_login/Images tu peux aussi utiliser
convert /home/ton_login/Images/nom_sce.jpg options.... /tmp/truc.jpg
ou plus simple
convert ~/Images/nom_sce.jpg options.... /tmp/truc.jpg

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Si tu utilises un script (avec shebang et dans un répertoire contenu dans $PATH) le chemin du script n'a pas besoin d'être spécifié et pourra donc être appelé quelque soit le répertoire courant..
Si ton script traite toutes les images du répertoire courant (for fic in *.jpg .....) tu dois te placer dans le répertoire où se trouvent les images sources et pour les destinations cela dépend du script, dans mon exemple je crée un répertoire 640x480 à l'intérieur du répertoire courant et je convertis les sources dans ce répertoire.
for fic in *.jpg
.....
convert tmp.jpg -extent 640x480-140+0 640x480/$fic
......
Si mes explications ne sont pas assez claires, peux-tu précise ton problème ?