ImageMagick Batch Convert

ImageMagick Batch Convert
En règle générale, nous pouvons écrire une ligne de code pour transformer une image, que ce soit pour le recadrage, le redimensionnement, etc. Avec ImageMagick, tout est assez simple. Mais supposons pour un cas où nous avions 1000 photos qui devaient être modifiées, que faisons-nous? Tapez la commande 1000 fois? Ce serait idiot, juste? C'est à ce moment que nous utilisons les conversions par lots. Cela signifie que nous pouvons être intelligents à propos de la transformation des 1000 et écrire quelques lignes de code au maximum pour nous assurer que le processus est effectué en douceur et facilement. Fondamentalement, nous n'avons pas à écrire les 1000 commandes. Dans ce tutoriel, nous apprendrons à convertir par lots les images dans ImageMagick.

Installation de l'imageMagick

Nous aurons besoin de l'imageMagick pour ce processus. Tout d'abord, l'installons en utilisant la syntaxe suivante:

sudo apt-get install ImageMagick

Mogrifier

Supposons que nous ayons 1000 photos qui ont tous le «.Extension png ”. Supposons en outre que nous voulons les transformer tous en un «.fichier jpg ”.

Maintenant que nous avons fini de supposer, nous pouvons commencer à écrire le code.

Mogrify -format jpg *.PNG

Ici, nous disons à l'imagemagick qu'il y a beaucoup de ««.Images PNG pour utiliser chacun avec un «.Extension png ”. Nous disons ensuite à l'imageMagick avec le commutateur de format pour transformer l'image en une image JPG. Ici, le commutateur de format empêche les images d'être écrasées. En règle générale, la distinction entre Mogrify et Converti. Mais ce n'est pas le cas lorsque nous utilisons le commutateur de format (une exception à la règle).

La grande partie de ce petit morceau de code est qu'il convertira autant de photos que vous le souhaitez. Et c'est une ligne! Cependant, dans ce cas, nous enregistrons tous les nouveaux fichiers dans le même dossier que les anciens fichiers.

Maintenant, supposons que je veux les sauver dans un répertoire complètement différent. Nous avons un tas de *.JPG et nous les enregistrons dans un nouveau dossier appelé Newfolder. Supposons en outre que les fichiers originaux sont dans le dossier de téléchargements.

(L'idée ici est que tous les fichiers originaux sont dans le dossier des téléchargements, et nous créons un dossier appelé Newfolder pour vider les images transformées.)

Téléchargements de CD
MKDIR NEWFOLDER
Mogrify -format png -quality 100 -path ~ / téléchargements / newfolder *.jpg

Alors, que se passe-t-il ici? Nous appliquons la commande Mogrify et ajoutons un nouveau commutateur appelé chemin. Le commutateur de chemin garantit que les nouvelles images créées ont été vilées dans le dossier spécifié (newfolder).

Maintenant, supposons que nous ayons une combinaison d'images JPG et d'images PNG et que nous voulons les transformer en jpeg.

Mogrify -format jpeg *

Dans ce cas, au lieu de spécifier les images que nous voulons convertir, nous mettons juste une étoile. L'étoile signifie tout convertir.

S'il y a des dossiers là-bas, il se bloquera donc alors utilisez le commutateur de chemin également.

Convertir

Maintenant, écrivons quelque chose d'un peu différent en utilisant la commande convertide au lieu de la commande Mogrify (la commande Mogrify écrase les fichiers d'origine).

convertir *.PNG - Résidiquer 1234x1234 Resdimensive -% D.PNG

Qu'as-tu remarqué ici? Nous avons fait la conversion par lots en utilisant la commande converti. Pour renommer le fichier, nous utilisons le terme «Resdimensived-% d.png ”. Quel est cette connexion «% d» dans le nom? Le reste du nom a du sens, à droite? Et le «% d» signifie les numéroter avec 0, 1, 2, etc.

Un autre exemple rapide:

convertir *.PNG - Résidiquer 1234x1234 Resdimensive -% 03d.PNG

Que signifie le «% 03d»? Eh bien, regardez la sortie. Il le renommée avec 3 chiffres cette fois. Maintenant, au lieu de voir le redimensionné-0.PNG, nous voyons le redimensionn-000.PNG.

Boucles

Vous pouvez également écrire les boucles.

pour f in *.JPG; convertir "$ f"-qualité 85 "$ f".png; fait

Dans ce cas, nous utilisons toujours un one-liner mais c'est un peu plus complexe. Dans ce cas, nous disons que pour chaque image appelée f, nous convertissons l'image et la renommant en «$ f.png ”. Comme vous l'avez peut-être remarqué, si l'image est appelée «Image1.JPG ", il le renommée à" Image1.jpg.png ”. Cette commande est un peu erronée, alors regardons les autres façons de renommer l'image.

Auparavant, nous avons utilisé la commande Mogrify. Il n'a pas écrasé les images en raison de l'interrupteur de format. Mais si le commutateur de format n'avait pas été là, lors du redimensionnement par exemple, il aurait écrasé le fichier. Alors, et si nous voulons utiliser la commande converti?

pour le fichier dans *.png; convertir $ file -sesize 1275x1222 redimensider- $ file; fait

Essayons de comprendre cette commande.

La première partie de la commande est la suivante:

pour le fichier dans *.png;

Le *.PNG fait référence à tous les fichiers PNG. Cela signifie «pour tout fichier unique dans la pile de fichiers».

La commande principale est la suivante:

Convertir $ Fichier - Résidiquer 1275x1222 Residize- $ Fichier

Cette partie prend simplement le fichier $ (un fichier) et le redimensionne à l'aide du commutateur de redimensionner, puis efface un fichier appelé fichier redimensial- $.

Nous terminons alors avec fait. Cette partie est assez évidente.

Assez facile, à droite?

Conclusion

La conversion par lots est un processus très utile. Cela nous empêche de devoir redéfinir une commande un million de fois. Dans ImageMagick, le moyen le plus simple de transformer un million d'images est en utilisant la commande Mogrify. Cependant, s'il n'est pas utilisé en conjonction avec le commutateur de format, il écrit sur l'image d'origine. Par exemple, si vous utilisez la commande Mogrify pour convertir un tas d'images pour les redimensionner, il écrase les images originales. Parfois, ce n'est peut-être pas ce que vous voulez, et dans de tels cas, vous pouvez recourir à l'écriture d'un petit script. Le script lui-même est une doublure et vous pouvez utiliser la commande converti si vous le souhaitez, donc c'est la bonne partie. Mais c'est un peu plus complexe que la plus simple des conversions par lots effectuées à l'aide de la commande Mogrify. Quoi qu'il en soit, le fait est que vous n'avez plus à transformer une image à la fois. Vous pouvez aller de l'avant avec les conversions par lots qui peuvent convertir des milliers et des milliers d'images en un instant.