Images matricielles et images vectorielles
Transcription
Images matricielles et images vectorielles
nde ICréN 2 Images matricielles et images vectorielles On distingue généralement deux grandes catégories de format d'images 1. Images matricielles (bitmap) Principe : il s'agit d'images décomposées en parties élémentaires appelées pixels. A chacun on associe des valeurs numériques permettant de coder leur couleur, éventuellement leur transparence… Le système de codage de couleur le plus courant est RGB : à chaque point on affecte trois entiers permettant de donner le niveau de Rouge, Vert et Bleu Format de fichiers : non compressés : bmp, tiff,… Compressés avec perte d’information : gif, jpg,png,… Avantages : Inconvénients : Exemple de format non compressé .bmp Image 8*8 en RGB 24bits Les Images Page 1 nde ICréN 2 2. les images vectorielles: Principe : Les images vectorielles sont des représentations d'entités géométriques telles qu'un cercle, un rectangle ou un segment. Ceux-ci sont représentés par des formules mathématiques : - un rectangle est défini par deux points - un cercle par un centre et un rayon - une courbe par plusieurs points que l’on reconstitue par des calculs mathématiques (Courbes de Bézier) -…. C'est un programme qui sera chargé de "traduire" ces formes en informations interprétables par la carte graphique. Quelques formats de fichiers : Clipart (wmf,..) Graphes : (geogebra,…) DAO (logiciels solidworks, freecad, autocad, …) Cartographie Exemple : Format svg (Scalable Vector Graphics ) que l’on peut créer avec le logiciel libre Inkscape Le contenu du fichier est codé en ASCII (dans un langage basé sur le XML) <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="300" height="200"> Image correspondante <title>Exemple simple de figure SVG</title> <desc>Cette figure est constituée d'un rectangle, d'un segment de droite et d'un cercle.</desc> <rect width="100" height="80" x="0" y="70" fill="green" /> <line x1="5" y1="5" x2="250" y2="95" stroke="red" /> <circle cx="90" cy="80" r="50" fill="blue" /> <text x="180" y="60">Un texte</text> </svg> Avantages : image vectorielle image bitmap Inconvénients Les Images Page 2 nde ICréN 2 3. Que se passe-t-il dans la machine? (en très simplifié) TD : fichiers image Bitmap et vectorielle Partie A. Image bitmap Une image bitmap indépendante du matériel peut être créée avec Paint, puis sauvegardée sous forme d’un fichier au format bmp. Elle peut aussi être créée, pixel par pixel, avec un éditeur hexadécimal. Chaque pixel est codé sur 3 octets (RVB) soit 24 bits par pixel. 1. Créez puis sauvegardez, à l’aide de Paint, avec le nom « Image 4x4.bmp » par exemple, un bitmap de 4 pixels x 4 pixels (utiliser l’onglet affichage puis attributs) de couleur rouge. 2. Ouvrez ce fichier « Image 4x4.bmp « avec un éditeur hexadécimal. Vous verrez l’ensemble des octets, qui peuvent être séparés en 3 parties successives : - Une partie en-tête de fichier : elle contient de l’information sur le type et sur la taille du fichier : - Une partie en-tête d’information sur l’image : elle contient des informations sur les dimensions et le format de couleur de l’image. - Une partie de description de chaque pixel : dans cette partie, les pixels sont décrits dans l’ordre inverse de leur affichage à l’écran. Les pixels associés à la dernière ligne apparaissent en premier et les pixels associés à la première ligne apparaissent en dernier dans le fichier. La taille de cette partie est variable car elle dépend de la taille de l’image. Chaque ligne décrit les pixels en allant de la gauche vers la droite de l’image. La longueur de chaque ligne doit être un multiple de 4 octets, c’est pourquoi des octets 00 sont ajoutés parfois à la fin de chaque ligne de pixels. Dans notre exemple (image toute rouge) les composantes RVB de chaque pixel sont les suivantes : - Composante bleu (B=00) : 0*16 + 0 = 0 ; - Composante vert (V=00) : 0*16 + 0 = 0 ; - Composante rouge (R=FF) : 15*16 + 15 = 255 3. Ouvrez le fichier avec un éditeur hexadécimal. Modifier les couleurs de pixels de rouge à vert, en remplaçant les octets 00 00 FF par 00 FF 00. Enregistrez le nouveau fichier ainsi créé avec le nom « Image 4x4 1.bmp « par exemple. Puis ouvrez-le avec Paint. Tous les pixels de l’image sont maintenant verts. C’est bien le résultat attendu. ère ème 4. Refaire d’autres manipulations en changeant seulement quelques pixels (le pixel de la 1 ligne 2 colonne par exemple) Partie B. Image vectorielle 1. Créer une image vectorielle « image vectorielle « sous Inkscape au format svg : un rectangle et un cercle rempli d’une couleur –rouge et noire par exemple 2. Ouvrir le fichier avec un éditeur hexadécimal, puis avec notepad++. Qu’observez-vous ? Essayer de modifier la couleur de remplissage du rectangle et du cercle. Les Images Page 3 nde ICréN 2 Traitement d’image avec Python Pour modifier une image, il faut récupérer les informations contenues dans un pixel sous forme d’une liste (un tuple) donnant le rouge, le vert, et le bleu du pixel. Les Images Page 4