sauver/restaurer une image dans un fichier map

 

ulis, 2006-01-29. Une map ne contient pas une image. Mais si l'image s'y prête et si on connaît la couleur d'arrière-plan, la couleur d'avant-plan et le coefficient de correction de la luminosité, on peut considérer qu'on peut le faire.


Pourquoi

Faut-il expliquer pourquoi l'on garde les images dans des fichiers ?


Comment

Il faut fournir les informations manquantes au moment de l'utilisation.


Utilisation

  # create a file from a photo
  img2file photo file {tr 0} {fg ""}
  # photo : une image de type photo
  # file : un nom de fichier
  # tr : l'indice de luminosité correspondant à la transparence. Sa valeur par défaut est '0'.
  # fg : l'indice de luminosité correspondant à la couleur d'avant-plan. Sa valeur par défaut est "".

  # create a photo from a file
  file2img file {bg white} {fg white} {coef 1.0}
  # file : nom du fichier
  # bg : couleur d'arrière-plan. Sa valeur par défaut est 'white'.
  # fg : couleur d'avant-plan. Sa valeur par défaut est 'gray'.
  # coef : coefficient de correction de la luminosité. Sa valeur par défaut est '1.0'.

La sauvegarde d'une image

  # create a file from a photo

  proc img2file {photo file {tr 0} {fg ""}} \
  {
    map2file [img2map $photo $tr $fg] $file
  }

La restauration d'une image

  # create a photo from a file

  proc file2img {file {bg white} {fg white} {coef 1.0}} \
  {
    return [map2img [file2map $file] $bg $fg $coef]
  }

Démo

  package require Tk

  set map \
  {
    0
    0feeeeeeeeeeeed0
    ffdddddddccccced
    eeddddcccccccccd
    edddccccccbbbbcd
    eddcccccbbbbbbcd
    edccccbbbbbbbbcd
    edcccbbbbbbbbbcd
    edcccbbbbbbbbbcd
    ecccbbbbbbbbbbbd
    ecccbbbbbbbbbbbd
    eccbbbbbbbbbbbbd
    eccbbbbbbbbbbbbd
    eccbbbbbbbbbbbbd
    eccccbbbbbbbbbbd
    edccccccbbbbbbcd
    0eddddddddddddd0
  }
  set img [map2img red]
  img2file $img myBox.map

  set img [file2img myBox.map red]

Voir aussi


Discussion


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