Comment manipuler des images dans le terminal Linux

Vous êtes-vous déjà fatigué d'ouvrir constamment votre éditeur d'image préféré pour un simple recadrage, un redimensionnement ou pour changer le format de fichier? Peut-être avez-vous besoin d'effectuer facilement ces tâches par lots ou dans un logiciel?

Voici comment utiliser l'outil de conversion Linux, qui vous permet de faire tout cela avec un terminal via la ligne de commande, et bien plus encore.

Installez ImageMagick

L'outil de conversion fait partie du package imagemagick populaire, que vous devez avoir installé. Vérifiez si ImageMagick est installé ou non avec la commande:

 convert --version

Si le numéro de version d'ImageMagick est affiché, c'est qu'il est déjà installé et vous pouvez passer à la section suivante. Sinon, installez ImageMagick avec la commande:

 sudo apt-get -y install imagemagick

Obtenir des informations sur l'image

Vous pouvez obtenir les informations de base sur n'importe quelle image avec la commande:

 convert <FILENAME> -print "Type: %m
Size: %b
Dimensions: %wx%h
" /dev/null

Cela vous donnera le type d'image mime, la taille du fichier en Ko et ses dimensions en pixels, et ressemblera à:

 Type: jpeg
Size: 35.6KB
Dimensions: 640 x 480

Changer le format de fichier image

Vous pouvez facilement changer le format de fichier de n'importe quelle image avec:

 convert <SOURCE_FILE> -append <DEST_FILE>

Cette commande prendra le fichier <SOURCE_FILE>, le convertira au format approprié et enregistrera une nouvelle image dans <DEST_FILE> Vous devez utiliser les extensions de fichier correctes (c'est-à-dire, JPG, GIF, PNG, etc.) pour le DEST_FILE et il le sera détecte automatiquement le format dans lequel convertir l'image.

Redimensionner une image sous Linux

Si vous souhaitez redimensionner une image, ou peut-être générer rapidement une miniature, vous pouvez le faire avec l'option -resize . Exécutez la commande suivante:

 convert -resize 25% <SOURCE_FILE> <DEST_FILE>

Cela redimensionnera l'image et créera un nouveau fichier image à DEST_FILE qui correspond à 25% des dimensions de l'image source. Veuillez noter que la commande ci-dessus ne réduit pas la taille de 25%, mais génère à la place une nouvelle image qui fait 25% de la taille. Si vous avez besoin d'agrandir une image, vous pouvez ajuster le pourcentage à plus de 100%.

Au lieu de redimensionner par pourcentage, vous pouvez également spécifier les dimensions spécifiques avec la commande:

 convert -resize 1024x768 profile.jpg profile_large2.jpg

La commande ci-dessus redimensionnerait l'image source à 1024×768 pixels et enregistrerait la nouvelle image dans DEST_FILE.

Recadrer une image

Si vous avez besoin d'enlever un peu le haut ou les côtés, vous pouvez recadrer une image avec la commande suivante:

 convert <SOURCE_FILE> -crop 640x250+0+0 <DEST_FILE>

Par exemple, si l'image source était de 640×480 pixels, la commande ci-dessus entraînerait DEST_FILE étant une image de 640×250 pixels contenant la moitié supérieure de l'image tandis que la moitié inférieure était rognée. Le + 0 + 0 dans la commande ci-dessus spécifie le point le plus en haut à gauche de l'image, ou en d'autres termes, où commencer le recadrage.

En utilisant l'exemple ci-dessus, vous pouvez enregistrer la moitié inférieure de l'image à la place avec la commande:

 convert <SOURCE_FILE> -crop 640x250+0+230 <DEST_FILE>

Cela commencera le recadrage à 0x230 dans l'image source, découpant la moitié supérieure et ne laissant que la moitié inférieure.

Faire pivoter l'image

Vous pouvez même faire pivoter les images en utilisant la commande:

 convert <SOURCE_FILE> -rotate 90 <DEST_FILE>

La commande ci-dessus fait pivoter l'image source de 90 degrés dans le sens des aiguilles d'une montre et enregistre l'image résultante dans DEST_FILE.

Ajouter une légende à l'image

Une autre excellente fonctionnalité de l'outil de conversion est la possibilité d'ajouter instantanément des légendes aux images, y compris l'emplacement de la légende dans l'image, ainsi que la famille de polices, la taille et la couleur à utiliser. Utilisez la commande suivante pour ajouter une légende à une image:

 convert profile.jpg -pointsize 14 -font helvetica -fill yellow -draw 'text 270,160 "Warm Regards from the Family" ' profile_cap.jpg

La commande ci-dessus placera une légende de "Warm Regards from the Family" sur l'image source en utilisant la police Helvetica 14pt en jaune, le point supérieur gauche de l'image commençant à 270×160 pixels, et enregistrera les résultats dans DEST_FILE.

Veuillez noter que vous devez être prudent avec l'option -draw , qui doit commencer par des guillemets simples suivis de l'emplacement du point le plus en haut à gauche, puis par le texte de la légende entouré de guillemets doubles.

Il existe une énorme liste de couleurs disponibles, et si vous le souhaitez, vous pouvez répertorier toutes les couleurs prises en charge par votre ordinateur avec la commande:

 cb:>showrgb

La sélection des polices varie en fonction de votre ordinateur , mais toutes les polices standard généralement utilisées seront présentes. Chaque système d'exploitation est un peu différent, mais dans Ubuntu par exemple, les polices sont situées dans le répertoire / usr / share / fonts et contiennent une liste de toutes les polices système disponibles que vous pouvez utiliser dans la commande ci-dessus.

Commandes d'édition d'image Mix and Match

Vous pouvez mélanger et assortir l'une des options ci-dessus en une seule commande pour une plus grande efficacité. Par exemple, si vous avez une grande image qui est dans la mauvaise orientation, 2571×1200 pixels de taille, et que vous souhaitez générer une miniature 300×200, vous pouvez utiliser la commande:

 convert <SOURCE_FILE> -rotate 90 -crop 1200x800 -resize 25% <DEST_FILE>

Ce qui précède ferait d'abord pivoter l'image de 90 degrés, ce qui rend la nouvelle taille de 1200×2571 pixels. Ensuite, il recadrerait l'excédent du bas pour ne faire que 800 pixels de hauteur, et redimensionnerait finalement l'image à 25% de sa taille d'origine, ce qui donnerait une miniature finale de 300×200 pixels.

Traitement par lots d'un répertoire d'images

Vous avez un répertoire entier d'images que vous souhaitez traiter avec la même commande? Ce n'est pas un problème sous Linux. Par exemple, vous souhaiterez peut-être générer des miniatures de toutes les images de votre répertoire de travail actuel en les redimensionnant à 30% de leur valeur actuelle:

 mkdir thumbs
for i in `ls | grep .jpg$`; do convert $i -resize 30% thumbs/$i; done

La commande ci-dessus parcourra tous les fichiers de votre répertoire actuel qui ont une extension .jpg, les redimensionnera à 30% de leur taille et placera les vignettes résultantes dans le sous-répertoire / thumbs / .

Manipulation d'images simplifiée!

Grâce à ce didacticiel, vous avez, espérons-le, supprimé la possibilité de manipuler des images sans effort et sans effort via le terminal, et de traiter facilement par lots un répertoire entier avec une seule commande.

Vous avez appris ce qu'est l'outil de conversion d'ImageMagick, et comment changer le format de fichier, redimensionner, recadrer, faire pivoter et ajouter des légendes aux images avec facilité. Il y a aussi beaucoup de fonctionnalités supplémentaires disponibles — essayez l'option convert -help pour une liste complète.