Revenir au sommaire Tutoriaux

Canvas Couleur Pixel Palette
Programmation des couleurs
Bitmaps
Scanlines
Masques Conclusion Références


Le problème des Masques

Si l'on veut superposer des images avec transparence, nous avons besoin d'un masque. Par exemple, un fichier Gif peut comporter une couleur de masque qui est l'une des 256 couleurs de sa palette. Si par convention on décide qu'un pixel contient la couleur du masque (Delphi utilise le pixel(0, Bmpheight-1) pour ses Glyph) un bitmap peut stocker un masque. En revanche, un fichier jpg à cause de sa méthode de compresssion perturbe les aplats de couleur et ne peut pas servir à stocker un masque.

Si l'on se limite aux trois types de fichiers Bitmap, Jpg, et Gif nous avons les caractéristiques de stockage suivantes :

Bmp

Jpg

Gif

Compression

 Mauvaise

Très bonne

Bonne

Couleurs

32 bits

24 bits

8 bits

Masque

 possible

Non

Oui

Palette

1,4,8 bits

Non

Oui

Pour à la fois stocker un masque, conserver 16 millions de couleurs en évitant de créer une palette 256 couleurs, et limiter la place disque occupée, je propose  le système suivant. Il combine le maximum d'nformaions avec le minimum de place::

  • Stockage de l'image en Jpg par exemple arbre1.jpg  pour la couleur et la compression
  • Stockage d'un bitmap monochrome associé arbre1.bmp pour représenter un masque bien net.

En mémoire, si l'image est en Pf24bit on peut lui associer un bitmap masque de même taille qui sera monochrome,  ou bien en niveau de gris (256 couleurs) , ou bien aussi en Pf24bit pour utiliser les mêmes fonctions scanlines que celles du traitement d'images. Un masque de 256 couleurs permet de réaliser des transparences avec dégradé, comme par exemple les ellipses de certaines photographies, ou l'assemblage de plusieurs photographies.
Dans ce dernier cas, il peut être intéressant de travailler en mémoire avec le format pf32bit, le 4ième octet étant utilisé pour stocker le masque.


Conclusion

Le traitement d'images est très performant avec la technique des scanlines de Delphi.


Références

Voici quelques sources de progammes ou d'extraits de programmes disponibles sur demande

Conversion RGBtoHSV
Conversion HSVtoRGB
Permettent de créer facilement des bitmaps avec les couleurs de l'arc en ciel
(Version Delphi 3 sans unité maths)
Copyrect amélioré Copie d'un rectangle R1 d'un bitmap dans le rectangle R2 d'un autre bitmap
avec un masque et un pourcentage de mélange.
Textes colorés Création de bitmaps contenant un texte Doré, argenté, irisé.
Ombre dégradée, contour du texte, affichage transparent.
Voir le titre en haut de cette page
Rotation Rotation de bitmaps
Colorise Dégradés de couleurs
Reflets Simulation animée de reflets dans l'eau

Le site à visiter absolument est celui de Earl.F.Glynn.

Ce site contient de nombreux exemples Delphi pour tout connaître du graphisme, des couleurs, et des palettes.

http://homepages.borland.com/efg2lab/

Sa page sur les scanlines décrit en détail tous les formats de 1 à 32 bits.
L'optimisation par calcul des pointeurs scanlines a éte adapté à partir de cette page.

http://homepages.borland.com/efg2lab/ImageProcessing/S anline.htm


Contacter l'auteur

Jean-Yves Quéinec

j.y.q@wanadoo.fr

 

Retour  

Revenir au sommaire Tutoriaux