Académique Documents
Professionnel Documents
Culture Documents
a. Un cas simple A partie de quelques millions de pixels, notre œil n’est plus capable de faire la
différence entre les deux images, le cercle initial et le cercle « pixellisé ». Cette
manière de représenter une image est le bitmap. Cela permet de représenter toutes
L’image 1 peut être décrite facilement : c’est un cercle
les images en noir et blanc.
et on peut préciser les coordonnées de son centre et son
rayon. Donc 4 données suffisent : le type cercle, les
coordonnées de son centre et son rayon.
4 octets peuvent suffire à numériser l’image.
c. Application
A chaque pixel, on associe un bit : 1 pour noir et 0 pour blanc. Poids en octet :
Pour notre cercle, on a utilisé un quadrillage 10x10 soit 100 bits donc 13 octets.
Cette image est mémorisée sous cette forme : Code :
0000000000001111110001100001100100000010010000001001000000100100000
010011000011000111111000000000000
Résolution : 2. Un peu de couleur
Ce type d’image est au format PGM (portable greymap) et son code est P2.
Ce type d’image est au format PPM (portable pixmap) et son code est P3.
La structure du fichier est la suivante : o soit du disque dur
load(« C:/documents/image.jpg »)
- code pour le type d’image (P3)
- largeur et hauteur de l’image en pixel, séparées par un espace - getWidth() et getHeight() qui donne la largeur et la hauteur d’une
- la valeur maximale utilisée pour exprimer chaque intensité de couleurs image (avec l’origine au centre).
- la liste des 3 intensités (RGB) par pixel, ligne par ligne de gauche à
droite et de haut en bas séparés par un espace.
- getPixel(x,y) qui, pour le pixel de coordonnées (x ;y), donne l’intensité
- Chaque ligne ne peut dépasser 70 caractères ; les lignes qui
commencent par un # sont ignorées. du niveau de gris ou du rouge sur une image en couleur.
- Int rgb[]=getPixelColor(x,y) qui, pour le pixel de coordonnées (x ;y),
Ouvrir le fichier cercle P3.PPM avec Notepad++ et analyser le code. Pour chaque donne, dans un tableau de 3 cases, l’intensité des 3 couleurs rouge
pixel, vous pouvez choisir des couleurs différentes. Le blanc est codé par : 255 255 (rgb[0]), vert (rgb[1]) et bleu (rgb[2]).
255 ; le noir par : 0 0 0. Ouvrir ce même fichier avec Gimp. Modifier-le comme
vous le souhaitez.
- setPixel(x,y,color) qui donne au pixel de coordonnées (x ;y), la couleur
spécifiée selon 3 modes :
c. Compression
o soit avec le nom de la couleur
Un fichier PPM a une taille très importante et souvent, il comporte de très o soit avec une intensité en niveau de gris
nombreuses répétitions. Afin d’éviter cela, on utilise des algorithmes de o soit avec 3 intensités en RGB.
compression qui permettent de réduire la taille du fichier et évitant les répétitions
inutiles (format JPEG, TIFF, …).
b. Pour bien comprendre
Mais cela peut faire l'objet d'un projet de fin d'année ...
Exercice 1 : Créer une fenêtre graphique de 50*50 avec l’origine en bas à gauche
et tracer plusieurs lignes (horizontales ou verticales) avec différents niveaux de gris
3. JAVASCOOL : Codage pixel pour chaque pixel.
Maintenant nous allons utiliser le proglet codage pixel de javascool. Exercice 2 : Créer une fenêtre graphique de 200*200 avec l’origine centrée et
tracer plusieurs rectangles de différentes couleurs mais unis pixel.
a. Les méthodes
Exercice 3 : Charger l’image façade, afficher sa largeur et sa hauteur puis les
Dans cette partie vous allez découvrir les outils suivants : intensités des 3 couleurs pour chaque pixel.
- reset(width,height) qui crée une fenêtre graphique dont l’origine est au Exercice 4 : Compléter le programme précédent en modifiant l'image pour ne
centre (Reset(width,height,false) crée une fenêtre graphique dont garder pour chaque pixel que la composante bleue, les 2 autres sont à 0.chaque
l’origine est en bas à gauche). pixel pour ne garder que la composante bleue, les deux autres seront mises à 0.
- load(image) qui charge une image : Exercice 5 : Comme pour l’exercice 4, modifier la couleur des pixels de l'image …
selon votre imagination !
o soit d’un site internet
load(« http://javascool.gforce.inria.fr/image.jpg »)