Créer une palette personalisée de 256 couleurs (couleurs sur 8 bits)

orus8 Messages postés 2 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 2 février 2003 - 2 févr. 2003 à 15:37
orus8 Messages postés 2 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 2 février 2003 - 2 févr. 2003 à 15:40
Mon projet consiste en la quantification d'une image de 16 milions de couleurs en une image en 256 niveaux de couleurs (et non 256 niveaux de gris).
Le problème se situe dans l'affichage du résultat de cette quantification : j'obtient une image en noir et blanc mais qui apparaît quantifiée, cette fois en 256 niveaux de gris.
Je pense donc qu'il faut modifier la palette.
Je crée ma palette ainsi :

for (r = 0 ; r < 64; r += 9 ) // 8 occurences
for (g = 0 ; g < 64; g += 9 ) // 8 occurences
for (b = 0; b < 64; b += 21 ) // 4 occurences
{
logPal->palPalEntry[ColorIndex].peRed = r;
logPal->palPalEntry[ColorIndex].peGreen = g;
logPal->palPalEntry[ColorIndex++].peBlue = b;
}

Je ne sais pas si la déclaration de cration de ma nouvelle palete est bonne:

int nColrs = 256;
LOGPALETTE* logPal = (LOGPALETTE*)new Byte[sizeof(LOGPALETTE) + (nColors - 1) * sizeof(PALETTEENTRY)];
logPal->palVersion = 0x300;
logPal->palNumEntries = (Word)nColors;
CreatePalette(logPal);

Je n'arrive pas non plus à utiliser la nouvelle palette crée pour qu'elle soit active lors de l'affichage du même Canvas qui contenait l'image 16 millions de couleurs après sa modification en 256 couleurs.

Si quelqu'un a compris le baratin lol Je vous remercie d'avance

1 réponse

orus8 Messages postés 2 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 2 février 2003
2 févr. 2003 à 15:40
J'ai oublié de préciser que c'est avec C++ Builder que je souhaite créer la palette.
0
Rejoignez-nous