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:
D'après ce que j'ai lu ici, je dois bien faire comme ça.
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();
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:
Je réobtiens un image identique à l'originale
Code : Sélectionner tout - Visualiser dans une fenêtre à part bmp.Save("image2.bmp");![]()
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 ).
Partager