Conversion et resampling image

ça vous est arrivé de recevoir un paquet d’images trop grosses pour les lire et que ce à -peu-près cent images pesent le poid d’un DVD (!!!).

C’est ce qui m’est arrivé. Un DVD plein de photos, tout en format TIF pesant 3Gigas! Toutes en format assez grandes pour faire une affiche publicitaire grandeur de celles qu’on trouve sur nos autoroutes!

Resizer les photos a la main… Non merci!

Voici comment j’ai fait, en linux, pour transférer les TIF en JPG. Puis ensuite, rapetisser les photos d’une largeur plus raisonnable.

Convertir les TIf en JPG

Pour commencer, on va lister tout les fichiers TIF, formater la commande de conversion type avec ImageMagick (ex: convert original.TIF original.jpg)

copier la ligne 1 du fichier texte, la ligne 2 donne un pointeur pour la description plus bas.
Afficher le fichier texte

En gros find(a) cherche dans le dossier courrant (b) tout fichier du nom de (c)… tout ce qui a l’extension TIF (d). Ensuite envoie (e) le résultant dans à sed (f) [Stream EDitor] qui va modifier chaque résultat selon une expression régulière [ce qui est entre “//” ] (g) et entre les simple-quotes ” ‘ “… qui renomme le “.TIF” à “[rien]” puis ensuite, enleve le nom de dossier actuel “./” que find donne comme résultat (i). Ensuite (j)… execute avec perl (k) les commandes suivantes: clarifie les début de ligne de la chaîne de résultat (l), renomme le fichier original $name, et écrit (n) la ligne de commande (o) a chaque résultat trouvé avec le format désiré: “convert nom.tif nom.jpg puis envoie (p) chaque resultat sur une ligne différente dans un fichier appelé “test” (q).

Explicite, hein! de la science infuse… j’ai moi même pris deux heures a trouver la bonne ligne de commande!

Ensuite, c’est simple, on vérifie ce que le fichier a donné

$ cat test

pour exécuter, ensuite, rien de plus facile:

$ /bin/bash test

Attention ça peut être long… Moi j’ai passé d’une image moyenne de 40Mo… a 4Mo (!!!) pour des photos prises avec un apapreil jettable, 40mo une photo c’est fichtrement, useless!

Rapetisser les images trop grosses en largeur plus raisonnable

mogrify -resize "500>" -density 96 *

Cette commande reformat les fichiers en fichier pas plus grand que 500pixels… avec une résolution de 96dpi… un peu plus raisonnable. Encore ici, cela peut prendre plusieurs minutes.

A plus tout le monde :)

Références

  • http://www-128.ibm.com/developerworks/linux/library/l-p101/
  • http://jeanpaul.lefevre.free.fr/ariane/perls.html
  • http://www-128.ibm.com/developerworks/library/l-graf/?ca=dnt-428
  • http://www.imagemagick.org