Manipuler des images à partir du Terminal sous OS X
Pour les besoins de ce site, je dois de temps en temps manipuler des images pour les réduire afin qu’elles s’affichent dans une dimension maximale de 110 pixels. Avant j’utilisais GIMP dans sa version Macintosh, car il contient à peu de choses près tout ce que Photoshop offre et qu’il est gratuit. Mais ça me gênait de lancer le logiciel qui prend pas loin de 30 secondes à s’ouvrir sur mon vieux G4 neurasthénique. Du coup je cherchais une alternative, gratuite et légère. Et j’ai trouvé !
En fait, depuis le passage à OS 10.3, Apple a prévu un outil accessible via le Terminal qui permet de faire de la manipulation d’image. C’est une commande discrète : sips. Le manuel est assez simple. Je vais donc expliquer ici comment réduire la taille des images et comment afficher les informations sur une image à partir du Terminal sans que cela nécessite aucune installation.
Pour commencer il faut ouvrir le Terminal (Applications/Utilitaires/Terminal) et avoir dans un coin de l’ordinateur une image sur laquelle on souhaite travailler. Puis :
sips -g all
Ajoutez un espace et glisser ensuite l’image dans la fenêtre. Le chemin d’accès va être automatiquement ajouté à la commande. Validez et vous obtiendrez quelque chose du genre :
Last login: Tue Jan 4 12:38:35 on ttyp1
Welcome to Darwin!
[xx-xx-xx-xx:~] romain% sips -g all /Users/romain/Desktop/bzkitty2.jpg
/Users/romain/Desktop/bzkitty2.jpg
pixelWidth: 531
pixelHeight: 451
format: jpeg
formatOptions: default
dpiWidth: 96.000
dpiHeight: 96.000
samplesPerPixel: 3
bitsPerSample: 8
space: RGB
[xx-xx-xx-xx:~] romain%
On sait maintenant que l’image fait 531×451 pixels. Notez qu’on aurait aussi pu le savoir en glissant cette image dans la fenêtre de notre browser (Firefox/Safari/Camino/IE…) mais on a ici quelques informations de plus. Et puis c’est un article qui rentre dans la catégorie geek, il fallait donc que je fasse un effort dans ce sens… On va maintenant réduire la photo pour que le côté le plus grand n’excède pas 110 pixels. On pourrait décider de changer la largeur, mais une commande nous simplifie la vie en gardant les proportions et en limitant automatiquement le côté le plus grand à la taille désirée (110 pixels en ce qui me concerne) :
sips –resampleHeightWidthMax 110
Ajoutez un espace et glissez le fichier image dans la fenêtre du Terminal pour obtenir le résultat suivant :
Last login: Tue Jan 4 12:57:48 on ttyp2
Welcome to Darwin!
[xx-xx-xx-xx:~] romain% sips –resampleHeightWidthMax 110 /Users/romain/Desktop/bzkitty2.jpg
/Users/romain/Desktop/bzkitty2.jpg
/Users/romain/Desktop/bzkitty2.jpg
[xx-xx-xx-xx:~] romain%
On vérifie ensuite que tout s’est bien passé en utilisant la première commande :
Last login: Tue Jan 4 13:00:24 on ttyp2
Welcome to Darwin!
[xx-xx-xx-xx:~] romain% sips -g all /Users/romain/Desktop/bzkitty2.jpg
/Users/romain/Desktop/bzkitty2.jpg
pixelWidth: 110
pixelHeight: 93
format: jpeg
formatOptions: default
dpiWidth: 96.000
dpiHeight: 96.000
samplesPerPixel: 3
bitsPerSample: 8
space: RGB
creation: 2005:01:04 13:02:14
software: QuickTime 6.5.2
[xx-xx-xx-xx:~] romain%
Et voilà le tour est joué. On est passé de 531×451 à 110×93 pixels. Afin de m’éviter d’avoir à retenir ces commandes à l’avenir, j’ai créé des alias dans le fichier .tcshrc en utilisant pico :
[xx-xx-xx-xx:~] romain% pico .tcshrc
Puis j’ai ensuite nommé mes alias « réduire » et « taille » :
alias reduire « sips –resampleHeightWidthMax 110″
alias taille « sips -g all »
Le tout suivi de CTRL X pour sortir, Y pour confirmer le changement et ENTRÉE pour valider le nom du fichier. Désormais pour obtenir la taille d’un fichier ou le réduire, je n’ai qu’à taper taille dans le Terminal, d’ajouter un espace, d’y glisser le fichier image et de valider :
[xx-xx-xx-xx:~] romain% taille /Users/romain/Desktop/bzkitty2.jpg
/Users/romain/Desktop/bzkitty2.jpg
pixelWidth: 110
pixelHeight: 93
format: jpeg
formatOptions: default
(…)
Idem pour réduire la taille des images. Plutôt pratique le Terminal. Beaucoup plus pratique qu’ImageEvents qui offre l’accès à sips mais via AppleScript. Bien entendu je connais ImageMagick (gratuit) qui s’utilise aussi avec le Terminal, mais qui est nettement plus puissant. Avec sips je n’ai tout simplement pas/plus besoin d’installer ImageMagick pour faire ce que je voulais faire ! Et pour ceux qui souhaitent faire du traitement en série (batch) ça reste tout à fait possible. Il suffit de se placer dans le dossier (test ici) qui contient les images à réduire et de lancer :
[xx-xx-xx-xx:~/Desktop/test] romain% reduire *.jpg