3.5.1 Introduction: image bitmap versus image

Transcription

3.5.1 Introduction: image bitmap versus image
PLAN
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
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

Documents pareils