3.5.1 Introduction 3.5.2 Principe 3.5.3 Avantages et Inconvénients 3.5.4 Applications 3.5.5 Logiciels sur Internet PLAN 3.5.1 Introduction: image bitmap versus image vectorielle Lorsque l'on affiche une image sur l'écran d'un ordinateur, ce que l'on voit n'est qu'une succession de points. Il existe pourtant deux manières différentes de stocker une image sur une machine, on parle d'image bitmap ou bien d'image vectorielle. Dans une image bitmap, les points (ou pixels ) sont stockés dans un tableau. Dans chaque case du tableau se trouve la couleur que l'on doit afficher au point correspondant. Pourtant cette méthode a ses limites, si la résolution de l'image est plus grande ou plus petite que celle de l'écran, il faut agrandir ou rétrécir l'image. Si la réduction de l'image ne pose pas de problème, l'agrandissement de l'image conduit à une dégradation de l'aspect visuel de l'image. Dans une image vectorielle, les objets sont constitués de formes géométriques simples, telles que des vecteurs, rectangles, des cercles, des ellipses... Le principal avantage des images vectorielles par rapport aux images bitmap est qu'elles sont redimensionnables sans pertes de qualité. Nous allons voir pourquoi dans la partie suivante.
3.5.2 Principe des images vectorielles. Lorsque l'on fait du dessin vectoriel, on utilise des entités géométriques simples (rectangle, cercle, ellipse ) que l on représente mathématiquement par un nombre limité de points et de paramètres. Par exemple, un carré sera représenté par les coordonnées de ses 4 sommets, un cercle sera représenté par son centre et son rayon. A ces points s'ajoute une couleur, une épaisseur et un motif de contour, une couleur et un motif de remplissage. Voici les notations vectorielles de deux figures géométriques simples telles qu'on les trouve dans des fichiers vectoriels non comprimés : Un rectangle: objet : rectangle points { (0,0),(20,0),(20,10),(0,10) } contour : bleu, épaisseur : 4, motif : trait continu remplissage : cyan Un cercle : objet : cercle centre { (100,50) }, rayon { 50 } contour : violet, épaisseur : 1, motif : trait continu remplissage : violet clair
Le volume d'une image vectorielle dépend donc du nombre d'objets vectoriels qu'elle comporte et surtout de leur codification. Sachant que les images vectorielles sont décrites par du texte et que le texte se comprime facilement, on aura au final une image qui occupera très peu de place mémoire. (A l'opposé des images bitmap le volume d'une image vectorielle est indépendant de la dimension de l'image et du nombre de couleurs à afficher) Une image vectorielle étant représentée par des points et des paramètres, il est très facile de lui appliquer des transformations géométriques courantes telles que les rotations, symétries, homothéties... Ces transformations n'occasionnent aucune perte de qualité comme nous allons le voir dans la suite. Les images vectorielles n'ont pas de dimension en pixel, mais des dimensions exprimées dans la même unité que les objets géométriques. En changeant l'échelle, le résultat sera plus petit ou plus grand, mais la scène représentée sera identique. Ainsi, il n'y a pas de perte de qualité lors du changement d'échelle puisqu'un cercle reste un cercle,... Un zoom correspond en fait à une homothétie sur les objets. Prenons cet exemple : on a une image de dimension 400 par 400 un cercle de centre ( 200, 150 ) de rayon 50 Pour afficher l'image associée à cette description, l'ordinateur doit être capable d'interpréter cette description pour la taille disponible en pixels. Si on souhaite afficher cette image dans un rectangle de 400 par 400 pixels, on trace un cercle centré en (200, 150) et de rayon 50. Si on souhaite l'afficher dans un carré de 1 000 pixels de côté, on trace un cercle centré en (500, 225) de rayon 125. On a ainsi réalisé une homothétie de rapport de 2,5. Pour des formes plus complexes, on a recours aux courbes de Béziers ( ou des B-Splines ). Cela permet de représenter des courbes gauches contrairement à une approche polygonale. On définit des points par lesquels la courbe doit passer, puis on calcule son équation. Courbe polygonale : on approche la courbe par plusieurs segments, le résultat n'est pas très satisfaisant (ici 5 segments) Courbe de Bézier : on trace les deux extrémités de la courbe, puis en jouant sur la direction et la norme de deux vecteurs tangeants aux extrémités, on peut donner à la courbe la forme que l'on veut
L'image vectorielle ne contient donc que la façon de construire l'image à représenter (au lieu de tous les points qui la constitue dans le cas d'une image bitmap). C est ainsi une méthode de représentation très économe en taille de fichier (on ne code que les tailles, positions, couleurs et motifs des objets à représenter). Mais le logiciel qui lit l image doit la reconstruire sous forme d image bitmap à chaque affichage. C est donc aussi une méthode très gourmande en calcul au momment de l'affichage. Voici une petite application java permettant de mettre en évidence les propriétés d'une image vectorielle par rapport à une image bitmap. Lancer l'animation :
3.5.3 Avantages et Inconvénients. Avantages : Comme chaque forme est décrite par des points, une couleur, un type et un motif, le fichier final, un simple fichier texte, sera très petit. Sa taille ne dépendra pas des dimensions de l'image, mais plutôt de sa complexité (nombre de points, d'éléments géométrique, de courbes... ) Les images sont redimensionnables sans perte de qualité. Les courbes seront lisses quelle que soit l'échelle d'affichage. Il n'y a pas d'effet d'escalier (ou crénelage). Les retouches d'une image vectorielle sont aisées. En effet, comme chaque entité géométrique de l'image est indépendante des autres, elle est facilement modifiable. Le format vectoriel gère la superposition des couches ( ou calques ), c'est à dire la superposition des entités géométriques Inconvénients : Le temps d'affichage est long. Le format vectoriel n'est pas reconnu par les navigateurs, ni par certains logiciels multimédias. Il faut alors avoir recours à un logicel comme Flash (voir applications) ou un plug-in. Il n'est pas possible de convertir une image bitmap trop complexe (du genre photographie) en image vectorielle. Les logiciels proposant une telle conversion nécéssitent souvent l'intervention de l'utilisateur pour faciliter la conversion. Chaque format de fichier vectoriel possédant ses propres attributs, la compatibilité entre les formats est difficile.
3.5.4 Applications Le format vectoriel est utilisé pour représenter des croquis et des schémas techniques ; des plans de bâtiments, de pièces techniques ( Autocad ) Il est aussi utilisé pour faire des cartes en tout genre : cartes topographiques (la gestion des calques est ici particulièrement intéressante pour superposer les routes, les fleuves... ), cartes démographiques,... Le vectoriel est beaucoup utilisé dans les polices de caractères. Quand on utilise une police vectorielle, on peut zoomer à l'infini dessus sans que sa qualité ne se dégrade. Par contre avec une police bitmap, si on zoome trop, on commence à avoir du crénelage (apparition d'escalier sur les caractères).
Police Bitmap Police vectorielle On l'utilise pour réaliser des logos, des Clip Arts, ou pour donner un effet de relief ou un effet 3D à du texte. Dans la partie manipulation, nous verrons comment dessiner le clipart "disquette" en vectoriel.
Voici enfin deux exemples de technologies utilisant le format vectoriel : La technologie Flash. La technologie Flash permet d'ajouter des séquences animées 2D au Web. Elle est basée sur les images vectorielles. Les objets, leurs déformations et leurs mouvements sont tous codés sous formes de formules mathématiques (rotation, translation, homothétie,...) accompagnées de paramètres (axe, angle et sens de rotation, direction sens et norme de la translation,...). Les animations sont ainsi de petites tailles: d'une part, chaque image est au format vectoriel (donc plus légère), et d'autre part les changements d'une image à l'autre sont eux aussi codés en vectoriel : seuls les objets qui bougent sont modifiés et ces mouvements sont codés par des formules mathématiques (comme dans un dessin-animé). Le langage Postscript. C est un langage de description de pages, permettant de donner des pages à imprimer indépendantes des caractéristiques du système d'impression. Au delà d'un simple système de description de pages vectorielles, c'est un véritable langage de programmation... dans lequel il est rare que l'on ait à programmer soi-même, vu que les applications comme les traitements de texte etc génèrent du Postscript tout prêt. C'est d'ailleurs en Postscript que nos traitements de textes commandent nos imprimantes!
3.5.5 Logiciels sur Internet Logiciels de dessin vectoriel sous Linux : Sketch (gratuit) : http://sketch.sourceforge.net/ Artstream (gratuit) : http://www.mediascape.com/ StarDraw (inclus dans StarOffice) : http://www.sun.com/software/star/staroffice/ KIllustrator (inclus dans KDE) : http://kde.org Logiciels de dessin vectoriel sous Windows : Paint Shop Pro (payant) : http://www.jasc.com/ Xara X (payant) : http://www.xarax.com/ Corel Draw (payant) : http://www.corel.com/ Adobe Illustrator (payant) : http://www.adobe.com/ (existe aussi sur Mac) Macromedia Freehand (payant) : http://www.macromedia.com/ (existe aussi sur Mac) Logiciels de conversion Bitmap vers Vectoriel : RasterVect (Windows) [ bitmap vers vectoriel ] : http://www.megagiciel.com/logiciels/fiches/logi9595.html Liens divers : Introduction au Dessin Vectoriel (Windows ou Mac) : http://www.cssh.qc.ca/recit/documentation.html Cours de Dessin Vectoriel : http://www.linuxgraphic.org/section2d/ Site généraliste sur l'informatique : http://www.commentcamarche.net/video/vector.php3