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

Toya78 49 Messages postés vendredi 1 septembre 2006Date d'inscription 23 août 2008 Dernière intervention - 28 nov. 2006 à 16:38 - Dernière réponse : Toya78 49 Messages postés vendredi 1 septembre 2006Date d'inscription 23 août 2008 Dernière intervention
- 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
cs_Kenavo 759 Messages postés vendredi 21 mars 2003Date d'inscription 1 octobre 2009 Dernière intervention - 29 nov. 2006 à 17:19
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
]

Merci cs_Kenavo 3

codes-sources a aidé 87155 internautes ce mois-ci

Commenter la réponse de cs_Kenavo
cs_Kenavo 759 Messages postés vendredi 21 mars 2003Date d'inscription 1 octobre 2009 Dernière intervention - 29 nov. 2006 à 17:22
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
Toya78 49 Messages postés vendredi 1 septembre 2006Date d'inscription 23 août 2008 Dernière intervention - 29 nov. 2006 à 17:28
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.