GNU/Linux >> Tutoriels Linux >  >> Linux

Convertir un tas de fichiers BMP en JPEG sous Linux

Vous pouvez utiliser l'outil mogrify d'ImageMagick

mogrify -format jpg *.bmp

Vous avez probablement ImageMagick installé sur Ubuntu.
Cela peut faire,

convert filename.bmp filename.jpg

mise à jour :

Le mogrify (répondu par hyperslug et référencé par cjm ) est également une bonne option.

Utilisez le mogrifier programme pour redimensionner une image, flouter, recadrer, éliminer, tramer, dessiner, retourner, joindre, rééchantillonner, et bien plus encore.
Cet outil est similaire à convertir sauf que le fichier image d'origine est écrasé
(sauf si vous modifiez le suffixe du fichier avec le -format option) avec les modifications que vous demandez.


Permettez-moi de faire un petit changement à la réponse de salmonmoose :

for i in `ls *.bmp`; do convert $i $i.jpg; done

Ce qui précède fonctionne mais génère des fichiers nommés "bmp.jpg". Vous pouvez obtenir des fichiers .jpg avec cette commande :

for i in *.bmp; do convert ${i} ${i%bmp}jpg; done

Voir man bash pour les détails du for commande. Le ${i%bmp} partie signifie la chaîne "${i}" sans la sous-chaîne "bmp" à la fin.

Il existe d'autres opérations pour transformer la chaîne en "${i}". "$i" est un raccourci pour "${i}". Le ls *.bmp une partie de la réponse salmonmoose signifie "exécuter ls *.bmp , puis le pour i part affecte chaque chaîne séparée par des espaces à i ". La même chose est réalisée par *.bmp car il correspond à tous les noms de fichiers du répertoire.

Il y a un inconvénient avec for - si les fichiers de votre répertoire ont des espaces dans le nom, par exemple "photo de mariage 1.bmp", il sera affecté 3 fois au i var, en exécutant ces commandes :

convert wedding wedding.jpg 
convert picture picture.jpg
convert 1.bmp  1.bmp.jpg

Dans ma réponse, la correspondance "${i%bmp}" échoue également.

Mais il existe une solution - vous pouvez utiliser le find commande à la place. Voir man find pour plus de détails. Vous devez taper quelque chose comme ce qui suit (veuillez vérifier la syntaxe avec la page de manuel avant de l'essayer) :

find -name *.bmp -type f -exec convert '{}' '{}'.jpg \;

(Je ne suis pas très sûr de la partie nom, et j'ai un doute dans le -exec partie, voir man find premier)

Si vous souhaitez joindre toutes les images dans un seul fichier .jpg, vous pouvez les concaténer avec un autre filtre, comme celui mentionné dans la première réponse.


Linux
  1. Comment convertir des fichiers en codage UTF-8 sous Linux

  2. Fichiers journaux Linux

  3. Commande mcopy sous Linux

  4. Comment convertir un PDF en JPG avec une ligne de commande sous Linux ?

  5. Conversion par lots de PNG en JPG sous Linux

Comment convertir par lots des fichiers PDF sous Linux

Stéganographie - Masquer les fichiers à l'intérieur des images sous Linux

Comment convertir des fichiers PDF au format EPUB à l'aide de Calibre sous Linux

Comment convertir une image de caméra Raw en JPEG sous Linux

Comment convertir par lots des images PNG au format JPG sous Linux

Commande ls sous Linux/UNIX