Comment modifier la palette d'un Bitmap 256 couleurs ? [Résolu]

Messages postés
49
Date d'inscription
vendredi 1 septembre 2006
Dernière intervention
23 août 2008
- - Dernière réponse : Toya78
Messages postés
49
Date d'inscription
vendredi 1 septembre 2006
Dernière intervention
23 août 2008
- 29 nov. 2006 à 17:28
Bonjour,

Je cherche à modifier une couleur d'un TBitmap 256 couleurs en intervenant directement sur sa palette (je cherche à modifier le blanc en rouge par exemple). Mais je ne comprend pas vraiment le fonctionnement des palettes et je n'ai pas trouvé de tutoriel là dessus (au passage si vous en avez à me conseiller...).

Pouvez-vous m'aider ?
Merci
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
759
Date d'inscription
vendredi 21 mars 2003
Dernière intervention
1 octobre 2009
3
Merci
Salut,

Il faut (je crois) utiliser les fonctions GetDIBColorTable et SetDIBColorTable, soit par exemple dans ton cas :

var
  i : integer;
  TabColor : Array[0..255] of RGBQUAD;
begin
  Image1.Picture.LoadFromFile('MonImage.bmp');                // chargement image
  If Image1.Picture.Bitmap.PixelFormat <> pf8bit then








         // vérif du format 256 couleurs











    exit; 
  GetDIBColorTable(Image1.Picture.Bitmap.Canvas.Handle,0,256,TabColor); // récup des 256 couleurs
                                                                        // de la palette
  for i := 0 to 255 do
    with TabColor[i] do
    begin      if (rgbRed 255) <gras>and (rgbGreen</gras> 255) and (rgbBlue = 255) then  //recherche du blanc
      begin
        rgbGreen : = 0;              // on ne laisse que le rouge
        rgbBlue := 0;
      end ;
    end;
  SetDIBColorTable(Image1.Picture.Bitmap.Canvas.Handle,0,256,TabColor); // On remplace la table
  Image1.Invalidate;               // et on redessine

  Image1.Picture.SaveToFile('MonImageModifiee.bmp');  // on sauve

end;




Je pense qu'avec ça tu devrait pouvoir obtenir ce que tu cherches

Ken@vo



<hr size ="2" width="100%" />



Code, Code, Codec !






[%3C/body
]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_Kenavo
Messages postés
759
Date d'inscription
vendredi 21 mars 2003
Dernière intervention
1 octobre 2009
0
Merci
J'ai pas précisé, mais j'ai mis un TImage (Image1) sur ma form !

Ken@vo








Code, Code, Codec !






[%3C/body
]
Commenter la réponse de cs_Kenavo
Messages postés
49
Date d'inscription
vendredi 1 septembre 2006
Dernière intervention
23 août 2008
0
Merci
Whaaa j'étais complètement à l'Ouest alors. Je pensais que la palette était accessible via la propriété Palette (HPALETTE) d'un TBitmap.

Merci pour ce code très clair et de plus bien expliqué !
Je vais approfondir le sujet !

Encore merci :)
Commenter la réponse de Toya78

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.