![]()
IMAGES TRANSPARENTES - LES COLORKEYS
Dans cet article, nous couvrirons les bases de l'utilisation des ColorKeys pour rendre certaines parties de vos images transparentes.
Vous pouvez télécharger le projet exemple de cet article: Code Source Du Projet : ddColorKeys.zip
| Notion de Couleur Clé - ColorKeys |
Définir une couleur clé dans une image consiste à définir une couleur transparente dans l'image.
On utilise les colorkeys pour qu'il y ait harmonie entre
l'arrière plan et l'image à coller sur ce-dernier.
Exemple:
| Sans ColorKeys | Avec ColorKeys: On rend le blanc transparent. |
![]() |
![]() |
Passons au code.
| Création d'une couleur clé. |
D'abord il faut déclarer un objet DDCOLORKEY
| Dim ck as DDCOLORKEY |
Ensuite on définit la couleur clé (transparente) dans l'image.
| ck.high = RGB(256, 256, 256) ck.low = RGB(256, 256, 256) |
La couleur blanche est la couleur clé.
| Application sur la surface |
Il faut maintenant appliquer la couleur clé sur la surface. On utilise pour cela la méthode SetColorKey.
| Set Surface =
DD.CreateSurfaceFromFile(App.Path + "\image.bmp", ddsd) Surface.SetColorKey DDCKEY_SRCBLT, ck |
Mais ce n'est pas tout, lorsqu'on voudra faire un blit de
la surface vers une autre, il faudra ajouter un flag supplémentaire à l'argument flag du
blit
Pour BltFast, il faut ajouter DDBLTFAST_SRCCOLORKEY. Exemple:
| 'ColorKeys:
DDBLTFAST_SRCCOLORKEY Backbuffer.BltFast 0, 0, Surface, ddRect(0, 0, 0, 0), DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY |
C'est tout !
| Conclusion |
Bien vous venez de découvrir comment
manipuler les ColorKeys afin de définir une couleur transparente dans une image.
Mais vous pouvez sophistiquer cet exemple en rendant plusieur couleurs transparentes à la
fois.
Il suffira par exemple, si nous voulons rendre le bleu et le rouge transparent dans une
image, de faire ceci:
Charger l'image dans Surface1, rendre le bleu transparent et mettre le résultat dans
Surface2, ensuite rendre le rouge contenu dans Surface2 transparent et mettre le résultat
dans Surface1.
Il est bien vrai que les bitmaps sont souvent un peu lourds, c'est pourquoi la plus part
des programmeurs préfèrent utiliser les images gif ou jpg, Mais DirectX ne dispose
d'aucune fonction permettant de le faire: Nous verrons comment charger un gif/jpg dans le
prochain article.
| Téléchargement |
Vous pouvez télécharger le projet exemple de cet article:
Ce projet utilise les ColorKeys pour rendre le blanc d'une image transparent.
[Home]
[Actualités]
[Trucs
& Astuces]
[Astuces Windows]
[ActiveX-Ocx/Dll]
[Articles]
[Codes Sources]
[VB
Games]
[Fichiers Sons]
[Fichiers Icônes]
[Programmes & Sources]
[Mailing-List]
[Divers]
[A Propos]