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

MFC Discussion :

Acquisition vidéo dans un MFC


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 19
    Points : 7
    Points
    7
    Par défaut Acquisition vidéo dans un MFC
    Bonjour,

    Toujours dans le cadre d'un projet de conception de commandes d'un robot avec acquisition vidéo :

    Pouvez vous me dire avec un projet AppWizard comment d'une part afficher la vidéo (dois-je utiliser des contrôles ActiveX, si oui lesquels, il y en a tellemment !). Il faut savoir que chacune des images de la vidéo seront en fait un fichier (matrice sûrement) et qu'à partir de ces "matrices" (je ne suis pas encore sûr) reconstituer les frames et ensuite les afficher dans mon envirronement graphique en real-time.

    Merci 1000 fois de m'aider. Je vous remercie déjà pour vos super conseils et ces super forum et tutoriel !

    PS : A titre d'info, on récupère les données via une carte WiFi ensuite on les décompresse et on retrouve les valeurs des pixels !

  2. #2
    mat.M
    Invité(e)
    Par défaut
    c'est une question spécifique VC++
    ce genre de question est récurrente


    Pour répondre à la question , il suffit de créer un projet SDI avec une CView , un timer qui toutes les 5 millisecondes rafraîchit l'écran.
    Une CView donne un contexte de périphérique pour dessiner
    Pour dessiner des pixels utiliser SetDIBBits et BitBlt/StretchBlt en créant une bitmap en mémoire.

    Il y a dans le MSDN un ( vieil ) exemple pour créer un fichier AVI avec des bitmaps

  3. #3
    mat.M
    Invité(e)
    Par défaut
    On peut utiliser aussi StretchDIBits

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    // pvJpgImage points to a buffer containing the JPEG image
    // nJpgImageSize is the size of the buffer
    // ulJpgWidth is the width of the JPEG image
    // ulJpgHeight is the height of the JPEG image
    //
     
    //
    // Check if CHECKJPEGFORMAT is supported (device has JPEG support)
    // and use it to verify that device can handle the JPEG image.
    //
     
    ul = CHECKJPEGFORMAT;
     
    if (
        // Check if CHECKJPEGFORMAT exists:
     
        (ExtEscape(hdc, QUERYESCSUPPORT,
                   sizeof(ul), &ul, 0, 0) > 0) &&
     
        // Check if CHECKJPEGFORMAT executed without error:
     
        (ExtEscape(hdc, CHECKJPEGFORMAT,
                   nJpgImageSize, pvJpgImage, sizeof(ul), &ul) > 0) &&
     
        // Check status code returned by CHECKJPEGFORMAT:
     
        (ul == 1)
       )
    {
        //
        // Initialize the BITMAPINFO.
        //
     
        memset(&bmi, 0, sizeof(bmi));
        bmi.bmiHeader.biSize        = sizeof(BITMAPINFOHEADER);
        bmi.bmiHeader.biWidth       = ulJpgWidth;
        bmi.bmiHeader.biHeight      = -ulJpgHeight; // top-down image
        bmi.bmiHeader.biPlanes      = 1;
        bmi.bmiHeader.biBitCount    = 0;
        bmi.bmiHeader.biCompression = BI_JPEG;
        bmi.bmiHeader.biSizeImage   = nJpgImageSize;
     
        //
        // Do the StretchDIBits.
        //
     
        iRet = StretchDIBits(hdc,
                             // destination rectangle
                             ulDstX, ulDstY, ulDstWidth, ulDstHeight,
                             // source rectangle
                             0, 0, ulJpgWidth, ulJpgHeight,
                             pvJpgImage,
                             &bmi,
                             DIB_RGB_COLORS,
                             SRCCOPY);
     
        if (iRet == GDI_ERROR)
            return FALSE;
    }
    else
    {
        //
        // Decompress image into a DIB and call StretchDIBits 
        // with the DIB instead.
        //
    }
    [/quote]

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/02/2007, 17h31
  2. Comment afficher une vidéo dans une page HTML ???
    Par safadev dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 05/10/2005, 19h50
  3. affichage d'un plan issu d'une vidéo dans un tpanel
    Par gerardTar dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/07/2005, 16h11
  4. Réponses: 5
    Dernier message: 08/10/2004, 14h40
  5. [MFC] Un callback dans des MFC ...
    Par elsargento dans le forum MFC
    Réponses: 3
    Dernier message: 18/02/2004, 16h04

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