Cette partie a pour but de vous faire totalement comprendre comment marche cette bibliothèque car il n'est pas toujours facile de se faire une idée du fonctionnement, j'ai pris ici la photo d'un chalet en 240*128 et quatre tons de gris :
Et voici ce que nous sauvegardons dans le buffer écran habituel, là aussi j'ai volontairement grisé les pixels armés. Vous voyez que cet écran est constitué de la couleur grise foncée mais aussi de la couleur noir de l'image finale :

Voici ce que nous sauvegardons dans la deuxième mémoire écran créé par la fonction on, attention j'ai volontairement grisé les pixels armés. Vous voyez que cet écran est constitué de la couleur grise claire mais aussi de la couleur noir de l'image finale :

Voici ce que nous sauvegardons dans le buffer écran créé par la fonction on, attention j'ai volontairement grisé les pixels armés. Vous voyez que cet écran est constitué de la couleur grise claire et là encore de la couleur noir de l'image finale :

Pour obtenir l'image finale, imaginez tout d'abord que la valeur des pixels du premier écran sont les bits 1 d'octets fictifs donc ont comme valeur 0 ou 2. Imaginez ensuite que la valeur des pixels du deuxième écran sont les bits 0 des mêmes octets fictifs donc ont comme valeur 0 ou 1.
Pour savoir quelle est la valeur d'un pixel de l'écran final, il faut ajouter la valeur des deux pixels des deux écrans.
Pour vous en convaincre définitivement, utilisez Paint Shop Pro et additionnez les deux écran précédents avec la commande
Image/Arithmetic/Function:Darkest
Enfin en sachant que la couleur blanche vaut 0, que le gris clair vaut 1, que le gris foncé vaut 2 et que le noir vaut 3, nous pouvons exprimer toute notre explication par l'octet fictif d'on nous avons parlé :
Pour avoir la couleur blanche |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | | | | | 0 | 0 |
Pour avoir la couleur grise claire |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | | | | | 0 | 1 |
Pour avoir la couleur grise foncée |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | | | | | 1 | 0 |
Pour avoir la couleur noire |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| |
| | | | 1 | 1 |
Pour terminer, additionnons deux octets qui seraient au même endroit respectivement dans la mémoire vidéo et dans l'écran créé par la fonction on et cherchons les couleurs finales :
Octet au hasard du premier écran |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0*2^1=0 | 0*2^1=0 | 1*2^1=2 | 0*2^1=0 |
1*2^1=2 | 1*2^1=2 | 0*2^1=0 | 0*2^1=0 |
Octet équivalent du deuxième écran |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
1*2^0=1 | 0*2^0=0 | 1*2^0=1 | 1*2^0=1 | 1*2^0=1 | 0*2^0=0 | 0*2^0=0 | 0*2^0=0 |
Couleurs de l'image final / addition |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0+1=1 | 0+0=0 | 2+1=3 | 1+0=1 | 2+1=3 | 0+2=2 | 0+0=0 | 0+0=0 |
|