dernière mise à jour: 5 novembre 2008
#
et
#
Au départ, c'était juste quelques programmes de démonstration pour
ma libimage, mais
maintenant, c'est arrivé à un stade où ça devient utilisable. Et comme
un miracle n'arrive jamais seul, voici la documentation, un
peu légère, il faut l'avouer...
Bien que ce pdf
soit une réelle avancée dans le monde spongieux de la documentation.
Par contre, la doc de la bibliothèque est
plus consistante, elle.
Current Tarball is here -> img-outils.tar.gz <-
Quelques remarques :
Il est possible de 'faire causer' ces outils en positionnant la variable d'environnement TGA_OUTILS_VERBOSE à yes. En particulier, la ligne de commande sera explicité sur stderr, ce qui est parfois utile dans les scripts ou les Makefiles complexes et/ou àlc.
A partir de mi-février 2008, les paramètres de type 'entier' peuvent éventuellement être donnés en notation décimale, octale ou hexa-décimale. La mise en oeuvre de ce nouveau truc a entrainé l'apparition de nombreux nouveaux messages de trace, qui vont bientôt disparaitre.
tga_showdiff iA.tga iB.tga mode dst.tga [params]
Mise en évidence des différences entre deux images de même dimension.
A l'heure actuelle, les modes disponibles sont: 0, 1, 2 et 3.
Voir ici pour (un peu) plus de détails.
Parce que, bon, c'est assez difficile à expliquer, mais je vais essayer.
mode | calculs |
---|---|
0 | Pour chacune des composantes, on calcule dC = ( (s1C - s2C)/2 ) + 127. |
1 | Pour chaque composante, si celle de la première image est supérieure à celle de la seconde image, la composante du résultat est à 255, sinon, elle est à 0. |
2 | Pour chacune des composantes, le calcul est: dC = (C1*C1 - C2*C2)/256, ce qui semble empirique, mais donne de bons résultats. |
3 | On calcule d'abord la valeur absolue de la difference de chaque composante des deux images: dC = abs(C1-C2), puis on binarise en fonction du seuil passé en paramètre sur la ligne de commande. |
Mise en évidence des zones à fort contraste. Le reste de l'image deviendra pratiquement noir. La méthode utilisée est ésotérique, moi-même, j'ai du mal à la comprendre.
tga_applymap M src.tga color.map dst.tga
M est le mode:
Syntaxe: tga_cadre TYPE <src.tga> <dst.tga> [p1] ... [pn]
Pour les différents types de cadres disponibles, il faut utsl, ou tenter de taper tga_cadre list, ce qui vous donne un truc dans ce genre:
commande | type arg | et ça fait quoi ? ------------+----------+---------------------- A | | use 'filet' instead filet | | un simple filet noir & blanc B | i | use 'cracra' instead cracra | i | un machin bizarre, un peu cracra sweep | iiii | dégradé: rouge vert bleu taille D | iiii | use 'bruit' instead bruit | iiii | du bruit: r g b taille E | iiii | cadre 'blablanux': 4 paramètres blablanux | iiii | cadre 'blablanux': 4 paramètres f | ii | un simple filet en gris, 2 params filetg | ii | un simple filet en gris, 2 params pattern | si | cadre pattern patt_degr | si | pattern dégradé patt_rand | si | pattern random burp0 | iii | cadre burp 0 burp1 | ii | cadre burp 1 burp3 | iiii | dimension, R, G, B pixx | ii | pixx! wave0 | iiiii | des vagues en chantier ------------+----------+----------------------
Une page de démonstration vaut mieux qu'un long discours. Il ne reste plus qu'à la faire. Qui s'en occupe ? Bon, il va falloir que je m'y colle... Voilà, c'est fait.
tga_extract source.tga resultat.tga X Y W H
Extraction d'une partie de l'image. Comportement non (encore) défini si
il y a débordement :)
coredump in progress...
tga_plothisto image.tga histo.tga [texte]
Dessine l'histogramme des 3 composantes r,g,b d'une image. Si le
paramètre texte existe, il sera écrit dans l'image. Sinon
il y aura image.tga. Pour plus de détails voir
libimage#plotteurs.
Permet de tracer quelques images de test, et maintenant les fontes 16x24. Ce truc est encore en chantier, parfois il ne fait pas ce qu'on attend...
tga_plotmap colors.map graphe.tga [texte]
Si la paramètre texte existe, il sera écrit dans l'image, et sinon,
ce sera le nom du fichier .MAP
Voir les fonctions plotteurs.
tga_remap MODE source.tga colors.map destination.tga
Là, il manque quelques explications.
utsl.
Il faut juste ajouter ceci:
tga_equalize avant.tga mode apres.tga
Egalisation des niveaux. A essayer...
Fabrication de divers patterns, pas toujours très beau, mon sens artistique étant limité... Désolé, je ferais mieux l'année prochaine.
Il existe quatre commandes différentes, certaines d'entre elles pouvant utiliser plusieurs méthodes:
half | paramètre: 0 subsample ou 1 interpole |
double | paramètre: 0 subsample ou 1 interpole |
percent | |
newsize |
fev 2008 Dans le temps (au siècle dernier, en fait), il existait une commande tga_halfsize qui a disparue. Afin de faire marcher un très vieux truc, je viens de la réimplémenter sous la forme d'un script shell.
Ce petit truc est en fait à l'abandon depuis plusieurs années. Je l'ai hacké à la va-vite quand j'en ai eu besoin, mais je vais y jeter un regard plus attentif parce que mon fils Nicolas s'interesse aux fractales. Vous pouvez aussi aller lire ce petit blabla.
La ligne de commande est: tga_combine s1.tga s2.tga MODE d.tga [PARAMS]. Voyons les différents mode de combination:
commande | type arg | explication ------------+----------+---------------------- mixer | i | no help mix_gray | i | param: 1..10000 mix_rgb | iii | params: 3*1..10000 seuils | iiii | lines | iii | taille offset 0 columns | iii | taille offset 0 checker | iiiii | no help random | i | param: 1..100 diago | fii | no help diagonale | fii | no help minmax | i | 0:min 1:max waou | iiii | no help wauo | i | must be 0 circle0 | i | must be 0 hdeg | f | 0 or 1 vdeg | f | 0 or 1 ifnotblack | | new mars 2007 stereo | | rouge/vert stereok | iii | rouge/vert/coefs
Pour plus d'explications, lire la doc des primitives. Il y a un petit cas pratique sur les images en relief.
Ce programme remplace tga_water, tga_2gray et tga_swapcolors.
4bits | | and 0xf0 class0 | | experimental decomp | f | flag: print colors flatgray | i | detect flat gray zones gray | f | grayk | iii | 3 coefs mirror | | mosaic0 | | ? photomaton | | negate | | seuil | iii | rgb thresholds noise | i | 0..100 pixelX | | prototype pixelY | | prototype recurse | i | EXPERIMENTAL ! rgbmskh | i | 'par' is a gray level rgbmskv | i | 'par' is a gray level rot4pix | i | ??? cont2x2 | | detection de contours, automatique. scratch | i | coredumper :) sinwave1 | dddddd | strange effect swapcol | s | rg rb bg updown | | upside down water | i | 'par' is water distance x0 | iii | 3 thresholds for r, g, b x1 | | xor other componant x2 | iii | trigonometry x3 | iis | x4 | iis | essai Avr 2007 x5 | iii | essai Avr 2007
La ligne de commande tga_effects list affiche une liste des effets disponibles.
Conversion d'une image TGA (à priori en 24 bits) vers divers formats. Cet utilitaire est pour le moment assez pauvre en possibilités, mais riche en limitations. Et surtout plein de bugs...
Pour plus de détails, consultez la doc des différents formats de fichiers gérés par la libimage. Et en particulier, les difficultés que nous cause le Grand Satan :)
Ce truc permet de fabriquer une image TGA à partir d'ordres de tracés simples.
Pour connaitre la liste des effets/options disponibles: tga_effects list. Tout cela ne semble pas très clair, mais avec un peu de pratique, ça vient vite. Voici quelques séquences de commandes qui vont vous permettre de démarrer sans patauger.
Image grise avec les contours mis en valeur.
$ tga_2x2contrast SRC.TGA toto.tga $ tga_effects SRC.TGA gray tutu.tga $ tga_combine tutu.tga toto.tga mixer DST.tga 4000
D'ailleurs, donner en seul argument le mot 'list' à tous les tga_* permet d'obtenir (en général) la liste des mots-clef utilisables.