Je supposais que tu avais déjà ta palette de couleurs.
Tu peux par exemple créer ta palette avec un logiciel de dessin tel gimp ou photoshop.
Ces logiciels possèdent des fonctions de création de dégradés très puissants.
Tu fabrique un beau dégradé dans le sens des valeurs désirées de gauche à droite.
Tu transformes ton image rvb en image avec couleurs indexées et tu obtiens une jolie palette, je crois que gimp permet de récupérer les valeurs en exportant en C .... ça fait un bail que je n'ai pas fait ça ...
A moins que tu cherche créer une palette (colormap) par code ? Là c'est autre chose ...
Mais dans ton post du début tu sembles avoir une palette ( qui n'est rien d'autre qu'un tableau de couleurs) , et des valeurs numériques auxquels tu veux associer une couleur via ta palette.
Sinon tu peux faire comme le sélecteur de couleur sur les appli android : génération d'un dégradé ( le sdk apporte une fonction dégradé toute faite ... ) et récupération des données RVB du pixel appuyé ...
Voici le fichier généré par gimp pour la palette hot ( elle a pas beaucoup de couleurs en fait )
/* GIMP header image file format (INDEXED): /home/arialia/hotpalette.h */
static unsigned int width = 117;
static unsigned int height = 15;
/* Call this macro repeatedly. After each use, the pixel data can be extracted */
#define HEADER_PIXEL(data,pixel) {\
pixel[0] = header_data_cmap[(unsigned char)data[0]][0]; \
pixel[1] = header_data_cmap[(unsigned char)data[0]][1]; \
pixel[2] = header_data_cmap[(unsigned char)data[0]][2]; \
data ++; }
// palette ou colormap
static char header_data_cmap[256][3] = {
{ 41, 0, 0},
{ 49, 0, 0},
{ 82, 0, 0},
{ 90, 0, 0},
{132, 0, 0},
{173, 0, 0},
{214, 0, 0},
{255, 0, 0},
{255, 41, 0},
{255, 82, 0},
{255,123, 0},
{255,132, 0},
{255,165, 0},
{255,173, 0},
{255,206, 0},
{255,214, 0},
{255,247, 0},
{255,255, 0},
{255,255, 33},
{255,255, 66},
{255,255, 99},
{255,255,132},
{255,255,189},
{255,255,231},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255}, {255,255,255},
{255,255,255}, {255,255,255}, {255,255,255} };
// image en couleur indexées
static char header_data[] = {
0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,12,14,14,14,
15,15,15,15,15,14,16,17,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,21,21,21,22,22,22,22,
22,22,22,22,23,
0,0,0,0,0,0,0,1,3,3,2,3,2,3,3,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,12,14,15,15,
15,14,15,15,15,15,16,16,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,21,21,21,22,22,22,22,
22,22,22,22,23,
0,0,1,0,0,0,1,1,3,3,2,2,2,2,2,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,13,14,14,14,
15,15,15,15,15,15,16,17,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,20,21,21,22,22,22,22,
22,22,22,22,23,
0,0,0,0,0,0,0,1,2,2,3,2,3,2,2,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,12,14,15,15,
14,15,15,15,15,14,16,17,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,21,21,21,22,22,22,22,
22,22,22,22,23,
0,0,0,0,0,0,0,1,2,2,3,2,3,2,2,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,12,14,15,15,
14,15,15,15,15,14,16,17,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,21,21,21,22,22,22,22,
22,22,22,22,23,
0,0,0,1,1,0,0,1,3,3,2,2,2,3,3,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,13,14,14,14,
15,15,15,15,15,15,16,16,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,21,21,20,22,22,22,22,
22,22,22,22,23,
0,0,0,0,0,0,0,1,3,3,2,3,2,2,2,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,12,14,15,15,
14,15,15,15,15,14,16,17,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,20,21,21,22,22,22,22,
22,22,22,22,23,
0,0,1,0,0,0,1,1,2,2,2,2,3,2,2,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,13,14,14,14,
15,15,15,15,15,15,16,16,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,21,21,21,22,22,22,22,
22,22,22,22,23,
0,0,0,0,0,0,0,1,3,3,2,2,2,3,3,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,12,14,15,15,
14,15,15,15,15,14,16,17,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,21,21,20,22,22,22,22,
22,22,22,22,23,
0,0,0,0,0,0,0,1,3,3,2,2,2,3,3,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,12,14,15,15,
14,15,15,15,15,14,16,17,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,21,21,20,22,22,22,22,
22,22,22,22,23,
0,0,0,1,1,0,0,1,3,3,2,3,2,2,2,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,13,14,14,14,
15,15,15,15,15,15,16,16,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,20,21,21,22,22,22,22,
22,22,22,22,23,
0,0,0,0,0,0,0,1,3,3,2,2,2,3,3,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,12,14,15,15,
14,15,15,15,15,14,16,17,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,21,21,21,22,22,22,22,
22,22,22,22,23,
0,0,1,0,0,0,1,1,2,2,3,2,2,2,2,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,13,14,14,14,
15,15,15,15,15,15,16,16,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,21,21,21,22,22,22,22,
22,22,22,22,23,
0,0,0,0,0,0,0,1,3,3,2,3,2,3,3,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,12,14,15,15,
14,15,15,15,15,14,16,17,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,20,21,21,22,22,22,22,
22,22,22,22,23,
0,0,0,0,0,0,0,1,3,3,2,3,2,3,3,3,
4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,
6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,8,
8,8,8,8,8,8,8,9,9,9,9,9,9,9,10,11,
11,10,11,10,11,11,12,12,13,12,12,13,12,14,15,15,
14,15,15,15,15,14,16,17,17,17,17,17,17,18,18,19,
19,19,19,19,19,20,21,21,21,20,21,21,22,22,22,22,
22,22,22,22,23
};
donc si tu as une palette fixe tu la transforme en tableau et tu peut faire par exemple :
$r=$hot[$temp][0];
$v=$hot[$temp][1];
$b=$hot[$temp][2];
Ps : pas très sure de la syntaxe des tableaux à plusieurs dimensions en php ....
Edit : flûte je me souviens plus quel logiciel graphique était bon pour éditer et créer les palettes , il y en avait un qui les créait dans l'ordre rencontré ....
Modifié par Arialia (29 May 2011 - 01:35)