N'arrivant pas à trouver un outil qui puisse déplacer la place des couleurs dans la palette d'un bitmap j'ai décidé de le faire moi-même, mais j'ai un petit problème.
Voilà comment je fais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
Bitmap bmp=new Bitmap("image.bmp"); // c'est une image 256 couleurs
ColorPalette p=bmp.Palette;
Color tmp=p.Entries[indice2];
p.Entries[indice2]=p.Entries[indice1];
p.Entries[indice1]=tmp;
bmp.Palette=p;
 
Graphics g=Graphics.FromHwnd(Handle); // Handle est le hWnd de la form
g.DrawImage(bmp, 0, 0);
g.Dispose();
D'après ce que j'ai lu ici, je dois bien faire comme ça.
L'image dessinée sur la form a bien ses couleurs d'indice indice1 et indice2 échangées.

Jusqu'ici tout va bien, mais quand je veux sauver l'image modifiée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
bmp.Save("image2.bmp");
Je réobtiens un image identique à l'originale
Je regarde la palette de image2.bmp avec paint shop pro et je vois que sa palette est la même que celle de image.bmp

Donc voilà c'est embêtant (faut peut-être définir des paramètres d'encodage dans une des surcharges de Save pour qu'il sache que je veux garder ma palette, mais je sais pas trop ).