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 :

probleme pour concatener unsigned char * et BITMAPFILEHEADER


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 50
    Points : 26
    Points
    26
    Par défaut probleme pour concatener unsigned char * et BITMAPFILEHEADER
    Bonjour,
    je souhaiterais envoyer un bitmap dans free image memory.

    Le bitmap est produit par directshow
    BYTE*data;
    IWindowlessControl->getCurrentImage(&data);

    Et dans une autre variable je recupere wxFile correctement le BITMAPFILEHEADER
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    bitmapfile(_("t.bmp"),wxFile::write);
    bitmapfile.Write(&hdr,sizeof(BITMAPFILEHEADER));
    bitmapfile.Write(lpDib,lpbi->biSizeImage);
    bitmapfile.Close();
    Quand je balance tout ce monde (le header et le data) dans un fichier pas de probleme j'ai mon bitmap dans un fichier.

    Mon soucis est que je souhaiterais ne pas envoyer le resultat dans un fichier mais directement dans Freeimage.

    il me faut donc un BYTE*(ou un unsigned char *).
    BYTE* mavariable;

    Soucis, je n'arrive pas a faire mavariable=concatenation(BITMAPFILEHEADER et data).

    Merci de votre aide.

  2. #2
    Membre régulier Avatar de cynique
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Points : 72
    Points
    72
    Par défaut
    Si tu as juste un pointeur sur le memoire de Freeimage, tu peux utiliser memcpy() ou std::copy(), par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      unsigned char *image = blabla();
     
      BITMAPFILEHEADER hdr;
      BYTE *lpDib;
     
      // ...
     
      memcpy( image, &hdr, sizeof(hdr) );
      memcpy( image+sizeof(hdr), lpDib, lpbi->biSizeImage );
    C'est fini!

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 50
    Points : 26
    Points
    26
    Par défaut
    merci pour ta réponse!

    en fait le probleme venait de mon bitmap, j'oubliais de mettre le bitmapinfoheader et donc, image noire!

Discussions similaires

  1. [WD17] équivalent du type 'unsigned char' en C pour Windev
    Par nokwih dans le forum WinDev
    Réponses: 2
    Dernier message: 09/02/2012, 09h21
  2. [XL-2003] probleme de formule pour concatener
    Par teen6517 dans le forum Excel
    Réponses: 4
    Dernier message: 17/01/2011, 17h48
  3. [debutant]Probleme pour lire un char
    Par ~Brouette~ dans le forum C
    Réponses: 3
    Dernier message: 14/05/2007, 20h08
  4. Probleme pour concatener 2 objets Set
    Par PORTES dans le forum C++
    Réponses: 13
    Dernier message: 16/04/2007, 16h02
  5. Réponses: 6
    Dernier message: 06/10/2005, 12h30

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