IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

palette de bitmap [Non suivi]


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Par défaut palette de bitmap
    Bonjour tout le monde ...
    mon problème est au niveau de la palette bitmap que j'arrive pas à y accéder.
    en fait et plus précisément je viens de convertir une image .pgm en niveau de gris une image bitmap afin de pouvoir l'afficher mais je la veux toujours en niveau de gris et le problème c'est qu'elle utilise la palette par défaut en mode RGB.
    alors comment la changer? ou il ya t-il un autre moyen de la faire?
    merci

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Si ton BCB ne sait pas transformer une palette quelconque en niv de gris, alors tu peux procéder de deux manière différentes en réalisant un bitmap de référence à niveaux de gris :

    - soit temporaire et donc calculé à chaque lancement du programme.
    - soit à demeure dans le dossier du programme, donc chargé au lancement du programme et dans ce cas on réalise un petit programme qui va se contenter de faire ce qui suit...

    Voic la méthode pour modifier la palette d'un bitmap et on suppose pour celà l'existence d'un *.bmp 256 couleurs (8 bits).

    Déclarations globales
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Graphics::TBitmap *GrayLevels = new Graphics::TBitmap;
    AnsiString Filepath;
    Dans le constructeur de la form :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    //Au cas où ce *.bmp est dans le dossier de l'application :
    Filepath = ExtractFilePath(Application->ExeName);
    //Chargement du bitmap
    GrayLevels->LoadFromFile(Filepath + "Bitmap8Bits.bmp");
    //Modification des entrées de la palette du bitmap
    PALETTEENTRY E;
    HPALETTE hgray = GrayLevels->Palette;
     
    for(int j = 0; j < 256; j++)
        {
        E.peRed = (Byte)j;
        E.peGreen = (Byte)j;
        E.peBlue = (Byte)j;
        E.peFlags = 0;
        SetPaletteEntries(hgray, j, 1, &E);
        }
    //Eventuellement le sauvegarder
    //GrayLevels->SaveToFile(Filepath + "RefGris.bmp");
    Si on souhaite disposer de ce bitmap sans avoir à le recontruire à chaque fois, il suffit de le sauvegarder immédiatement après et ainsi, dans le programme de traitement d'images on n'aura plus qu'à le charger.

    Pour l'usage, il faut savoir que tout chargement d'un bitmap se traduit aussi par le chargement de la palette du *.bmp !!!

    On a donc intérêt à bien faire attention au niveau de la cohérence des niveaux de gris entre ce bitmap de référence et tout chargement de *.bmp réalisés ou modifiés ailleurs, avec d'autres logiciels !

    A plus !

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/08/2006, 16h01
  2. Problème Palette bitmap
    Par tiboo dans le forum C++
    Réponses: 11
    Dernier message: 17/08/2006, 00h09
  3. Réponses: 14
    Dernier message: 04/01/2006, 14h40
  4. Réponses: 2
    Dernier message: 14/06/2005, 14h36
  5. Réponses: 2
    Dernier message: 16/01/2005, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo