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

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  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 412
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 412
    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