Dessiner un Bitmap transparent

Les premières version de Delphi ne géraient pas la transparence, les versions plus récente gère une couleur de transparence...nous allons voir comment on peut dessiner un bitmap transparent "à la main".

Le principe général est illustré dans l'exemple ci dessous (transbmp.zip)

1- Créer un masque correspondant à l'image

La première opération consiste à créer un bitmap monochrome définissant le contour de l'image, dans l'exemple c'est la couleur de fond qui sera utilisée, mais il est tout à fait possible de définir un contour indépendant des couleurs de l'image d'origine (c'est le cas des icônes par exemple).

2- Découper avec le masque le contour de l'image (AND)

Avec une simple copie du masque vers l'image de fond (en mode AND) la partie noire du masque est découpée dans l'image de fond.

3- Préparer l'image à être dessinée

Avant de terminer le rendu, il faut nous assurer que les pixels transparents de l'image soient noirs...peu importe si l'image possède d'autres pixels noirs puisque le contour initial de l'image est contenu dans le masque !

4- Remplir le trou avec l'image (OR)

Il ne reste plus qu'à placer l'image dans le trou par une simple opération de copie en mode OR.