Tk par l'exemple - Récupérer une image en noir et blanc

 

ulis 2007-04-14. Récupérer une image en noir et blanc.


Pourquoi

Pour ceux qui veulent traiter avec Tk des images en noir et blanc scannées d'une façon ou d'une autre.


Comment


Le script complet

  package require Tk
  # bitmap de l'image
  set bdata \
  {
    0000110000
    0001001000
    0010000100
    0100000010
    1000000001
    1000000001
    0100000010
    0010000100
    0001001000
    0000110000
  }
  # transformation en image Tk
  set data [list]
  set map {0 "#000000 " 1 "#ffffff "}
  foreach line $bdata \
  {
    set row [split [string trim [string map $map $line]]]
    lappend data $row
  }
  set img [image create photo]
  puts [join $data \n]
  $img put $data
  # affichage de l'image Tk
  label .l -image $img
  grid .l
  # sauvegarde de l'image
  $img write image.gif
  # affichage de l'image sauvée dans un fichier
  set img2 [image create photo -file image.gif]
  label .l2 -image $img2
  grid .l2 -pady 10

Les commentaires

La bitmap de l'image

  # bitmap de l'image
  set bdata \
  {
    0000110000
    0001001000
    0010000100
    0100000010
    1000000001
    1000000001
    0100000010
    0010000100
    0001001000
    0000110000
  }

Transformation en image Tk

(on peut remplacer #ffffff par white et #000000 par black mais ce sera plus lent)

  # transformation en image Tk
  set data [list]
  set map {0 "#000000 " 1 "#ffffff "}
  foreach line $bdata \
  {
    set row [split [string trim [string map $map $line]]]
    lappend data $row
  }
  set img [image create photo]
  puts [join $data \n]
  $img put $data

Affichage de l'image

Un label sait très bien afficher une image (voir Tk par l'exemple - Afficher une image).

  # affichage de l'image Tk
  label .l -image $img
  grid .l

Sauvegarde de l'image dans un fichier GIF

C'est une fonction standard de Tk (voir Tk par l'exemple - Afficher une image).

  # sauvegarde de l'image
  $img write image.gif

Affichage de l'image sauvée

La lecture d'un fichier GIF est une fonction standard de Tk (voir Tk par l'exemple - Afficher une image).

  # affichage de l'image sauvée dans un fichier
  set img2 [image create photo -file image.gif]
  label .l2 -image $img2
  grid .l2 -pady 10

Manipulation de l'image

Voir Manipulation d'image


Exercices


Voir aussi


Catégorie Cours | Catégorie Encyclopédie Tk