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 Discussion :

Tableau dans une structure


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 217
    Par défaut Tableau dans une structure
    Bonjour,
    j'essaye d'utiliser CreateDIBSection() pour créer un bitmap monochrome. Pour cela, je dois remplir préalablement une structure BITMAPINFO qui contient les caractéristiques du bitmap à créer, dont la palette de couleur utilisée (noir pour 0, blanc pour 1). Cette dernière est un tableau de deux structures RGBQUAD.
    Voila l'aide sur BITMAPINFO :
    BITMAPINFO
    The BITMAPINFO structure defines the dimensions and color information for a DIB.

    typedef struct tagBITMAPINFO {
    BITMAPINFOHEADER bmiHeader;
    RGBQUAD bmiColors[1];
    } BITMAPINFO, *PBITMAPINFO;

    Members
    bmiHeader
    Specifies a BITMAPINFOHEADER structure that contains information about the dimensions of color format.

    bmiColors
    The bmiColors member contains one of the following:
    -An array of RGBQUAD. The elements of the array that make up the color table.
    -[...] (ne me concerne pas)

    The number of entries in the array depends on the values of the biBitCount and biClrUsed members of the BITMAPINFOHEADER structure.
    Mon problème est que je ne sais pas comment insérer ma palette. La structure BITMAPINFO contient un tableau d'une seule structure RGBQUAD, ce qui équivaut à peu près à la structure :
    struct {
    BITMAPINFOHEADER bmiHeader;
    RGBQUAD bmiColors;
    }
    Il ne m'est donc pas possible de caser deux structures RGBQUAD au lieu d'une.

    Si vous avez un vision un peu plus clair que moi des tableaux (ce qui n'est pas trop difficile), merci de m'aider.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 217
    Par défaut
    Une âme charitable m'a répondu sur fr.comp.os.ms-windows.programmation :
    Il faut allouer dynamiquement un BITMAPINFO avec la bonne taille.

    Dans ton cas :

    BITMAPINFO* Info = (BITMAPINFO*)malloc(sizeof (BITMAPINFO)
    + sizeof (RGBQUAD));

    Info->bmiColors[0] = RGB(0,0,0);
    Info->bmiColors[1] = RGB(255,255,255);

    Pour une image 8 bits et 256 couleurs dans la palette, il faudrait
    sizeof (BITMAPINFO) + 255 * sizeof (RGBQUAD)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation d'un tableau dans une structure
    Par Angelique64 dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/06/2009, 11h05
  2. allocation d'un tableau dans une structure
    Par Klaine dans le forum Débuter
    Réponses: 3
    Dernier message: 02/04/2008, 23h51
  3. Problème de tableau dans une structure
    Par zarbiman dans le forum Réseau
    Réponses: 5
    Dernier message: 15/12/2007, 18h21
  4. Réponses: 6
    Dernier message: 12/09/2007, 15h58
  5. Tableau dans une structure
    Par Elstak dans le forum C
    Réponses: 3
    Dernier message: 25/04/2007, 11h45

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