Fichiers

Dans ces exercices d'application, nous n'écrirons dans les fichiers que des '0' et des '1'. Nous allons en effet travailler sur des fichiers d'images monochromes (au format pbm présenté dans l'exercice 1).

Présentation du format pbm.

Le format pbm permet de coder des images en deux couleurs (noir et blanc) au format texte

Une image est formée d'un rectangle de pixels, c'est à dire d'un rectangle de points colorés.
Une image de 10 pixels sur 10 pixels au format pbm est tout simplement un fichier contenant 10 lignes (plus deux lignes d'en-tête), chacune de ces lignes est constituée de 0 et de 1. Chaque 0 est interprété dans ce format par un pixel blanc et chaque 1 par un pixel noir.

Nous voulons par exemple créer une image de 10 pixels sur 10 pixels formée d'une alternance de lignes blanches et lignes noires, : lignesBN (le cadre rouge ne fait pas partie de l'image, il sert ici simplement à la mettre en évidence.)

Pour cela, il suffit d'inscrire le code suivant dans un fichier à l'aide d'un éditeur de texte :

P1
10 10
0000000000
0000000000
1111111111
1111111111
0000000000
0000000000
1111111111
1111111111
0000000000
0000000000
  

La première ligne P1 permet de reconnaître le format pbm texte, la ligne suivante (10 10) est constituée de la largeur, suivie de la hauteur (en pixels) de l'image.
Les lignes suivantes définissent les couleurs (blanc ou noir) des pixels de l'image.

  1. Copier, coller le texte précédent dans un fichier ouvert avec un simple éditeur de texte. Nommer le fichier bidule.pbm et visualiser l'image avec un logiciel adéquat (gimp par exemple).
  2. Créer maintenant un tel fichier à l'aide d'un programme python. La largeur et la hauteur du fichier image devront être demandées à l'utilisateur, ainsi que l'épaisseur d'une ligne.

Carrés emboîtés.

L'objectif dans cet exercice est de produire des images de carrés emboîtés comme suit (le cadre rouge ne fait pas partie de l'image, il n'est là que pour la délimiter) :

lignesBN

lignesBN

L'image est constituée de n carrés blancs 'emboîtés' (n est demandé à l'utilisateur) de largeur 1 pixel, deux carrés blancs sont séparés par un carré noir (de largeur 1 pixel également). Le plus grand carré est blanc, il a les dimensions de l'image. Le plus petit carré, au centre, est noir : il est constitué d'un seul pixel.

Programmez !