map

 

ulis. Une map c'est la lumière d'une image. A chaque point de l'image correspond un indice de luminosité dans la map.

Avec une map on peut faire une myriade d'images en variant la luminosité, la largeur, la hauteur, la couleur d'arrière-plan ou la couleur d'avant-plan.

Pour faire une map il faut un éditeur de texte et de l'imagination. Ou une image existante dont on extrait la map.

Les images issues d'une map sont idéales pour des objets de forme géométrique comme les boutons.


Pourquoi

C'est Richard Suchenwirth qui, avec son strinmj, m'a inspiré ce nouvel outil.


Description

    set map \
    {
      0f
      0bbaa9999998888780
      bdedccbbbbaaa99877
      beedcccbbbbaaa9876
      adddccbbb0aa999886
      acdccbbafff9888886
      acccbbaaafff888886
      9bcbbbaa99fff88886
      9bbbbaaa998fff8886
      9abffffffffffff886
      9aaffffffffffff886
      8aaaaaaaa99fff8876
      899aaaaaa9fff88876
      7899aaaaafff988776
      78999999fff9988776
      78889999bf98887765
      678888888888877765
      767777777777776666
      075566666666665570
    }

Une map est une liste qui comprend autant de lignes qu'il y a de lignes dans l'image correspondante. Chaque ligne contenant autant de caractère qu'il y a de points dans les lignes de l'image. Chaque caractère est un chiffre hexadécimal caractérisant l'indice de luminosité du point.

Une ligne supplémentaire, la première, contient un chiffre hexadécimal correspondant à la luminosité des points transparents et un chiffre hexadécimal correspondant à la couleur d'avant-plan. Le second chiffre peut être omis, la ligne peut être vide, mais elle ne peut être supprimée.

Pour faire une image,


Opérations


Démo

    # demo

    package require Tk

    set map \
    {
      0f
      0bbaa9999998888780
      bdedccbbbbaaa99877
      beedcccbbbbaaa9876
      adddccbbb0aa999886
      acdccbbafff9888886
      acccbbaaafff888886
      9bcbbbaa99fff88886
      9bbbbaaa998fff8886
      9abffffffffffff886
      9aaffffffffffff886
      8aaaaaaaa99fff8876
      899aaaaaa9fff88876
      7899aaaaafff988776
      78999999fff9988776
      78889999bf98887765
      678888888888877765
      767777777777776666
      075566666666665570
    }
    # make colored buttons from the map
    wm title . map
    . config -padx 10 -pady 10
    foreach color \
    {white gray red green yellow blue orange cyan} \
    {
      button .$color -bd 1 -relief flat \
        -width 15 -height 15 -padx 0 -pady 0 \
        -image [map2img $map $color gray85]
      pack .$color -side left
    }
    focus -force .

Voir aussi


Discussion

ulis : Je verrais bien une Bourse aux maps où chacun proposerait ses maps les plus réussies et viendrait faire son marché.


Catégorie Exemple | Catégorie Traitement d'image