J'ai un dossier avec de nombreuses images de différents types (png, jpg, jpeg, bmp, pdf), et je voudrais les convertir toutes en png (par exemple) en utilisant imagemagick.
Existe-t-il une seule commande qui peut effectuer cela? Sinon, que dois-je faire à la place?
Merci.
Essayez la commande mogrify
:
mogrify -format png *.*
Mais fais attention. Sans le -format
option, mogrify
écrase les images originales. Assurez-vous de lire la documentation .
Bien que mogrify
semble faire le travail, je voudrais vous montrer comment cela peut être fait avec plusieurs commandes avec convert
d'ImageMagick.
Je pense que plusieurs commandes sont meilleures, car le nombre de types de fichiers est censé être assez petit et vous pouvez mieux l'adapter à vos besoins:
Cette commande:
for file in *.xbm; do convert $file "`basename $file .xbm`.png"; done
convertira tous les .xbm
fichiers vers .png
sans toucher aux fichiers xbm.
Ensuite, vous pouvez déplacer tous les fichiers "convertis":
mkdir converted
for file in *.xbm; do mv $file converted/; done
Vous pouvez utiliser la commande convert
du package ImageMagick, par exemple.
find . -maxdepth 1 \( -iname \*.png -o -iname \*.jpg -o -iname \*.jpeg -o -iname \*.bmp -o -iname \*.pdf \) -exec convert -verbose "{}" "DEST_DIR/{}.png" \;
Ou si vous avez tous les fichiers dans le même répertoire, essayez la méthode plus simple suivante:
convert '*.*' converted_%04d.png
Similaire: Comment puis-je mettre à l'échelle toutes les images d'un dossier à la même largeur?