Pour convertir une image couleur en niveau de gris, il faut utiliser la formule
Gris=Rouge*0.299+Vert*0.587+Bleu*0.114
(pas une moyenne: notre oeil ne voit pas les trois couleurs pareil...)
Pour produire un gris neutre à l'écran, il faut fournir trois valeurs égales (ou à peu près égales) pour le rouge, le vert, et le bleu.
Et dans les images Borland, un TColor est un entier non signé, dont les 8 bits de poids faible représentent le Rouge, les 8 suivants le Vert, et les 8 suivants le bleu (valeurs comprises entre 0 et 255).
Donc, en partant d'une image, on aurait
1 2 3
| int Rouge=Pixels[i][j]%255;
int Vert=(Pixels[i][j]/256)%255;
int Bleu=(Pixels[i][j]/(256*256))%255; |
le niveau de gris moyen serait :
int Gris=(int)(Rouge*0.299+Vert*0.587+Bleu*0.114+0.5);
et pour faire un pixel de ce gris, on dirait :
Pixels[i][j]=Gris+256*(Gris+256*Gris);
C'est pas joli joli, les couleurs chez Mr Borland...
Francois
Partager