Gmic, c'est le GREYC´s Magic Image Converter, un outil en ligne de commande qui permet, grace à son interpréteur de langage dédié, d'effectuer une foultitude d'opérations diverses sur des images, ou plus précisément d'un ou plusieurs jeux de données 1d/2d/3d d'images à spectres multiples. En fait, nous allons nous limiter au traitement d'une picz en RGB, avec un résultat final en GIFs animées. Beaucoup de ces traitements sont paramétrables, il ne semble pas si indécent que ça de faire varier un de ces paramètres pour en déduire une image clignotante.
Pour ces quelques exemples, la structure générale de la boucle sera toujours pratiquement la même. Initialisations, suivies d'une boucle de 0 à N. Le compteur de boucle sera utilisé tel quel ou après un traitement mathématique comme paramètre variable de l'opération gmic.
#!/bin/bash SOURCE=source.png SPOOL="/tmp" SEED=999 DELAY=10 START=2 INCREM=3 END=99 for i in $(seq $START $INCREM $END) do dest=$SPOOL/gmic_a_$(printf "%03x" $i).png p=$(( $i + 3 )) gmic $SOURCE -fisheye $p -o $dest done convert -delay $DELAY $SPOOL/gmic_a*.png exp_gmic_a.gif
Concentrez-vous sur la structure générale de ce petit bout de gruiik code bashiste, n'hésitez pas à le faire tourner dans votre 'dinateur, en prenant bien soin de l'essayer sur une belle collection d'images source. Et quand vous aurez trouvé l'image qui va bien, nous pourrons retourner aux aspects programmatiques de l'opération.
Après de nombreux essais, espacés par de (trop) longues minutes de machination, voici le résultat des premières expérimentations de la chose, en utilisant différentes opérations de Gmic et une palette de couleur fixe.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Oué ! Et pour ceux qui veulent jouer aussi, voici le script qui va bien. Bon courage. La prochaine étape sera une gestion plus fine des couleurs. Stay tuned :)