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 :

Récuperer un Bitmap en mémoire et l'afficher dans un picturebox


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Récuperer un Bitmap en mémoire et l'afficher dans un picturebox

    Bonjour,
    Mes souvenirs en C, sont loin, ça fait 20 ans, mais je dois réaliser un programme en C++ qui récupère une image d'une caméra et l'afficher, j'ai réussi à récupérer l'image en passant pas un fichier BMP mais je souhaite passer directement par la mémoire pour gagner du temps et ça fait une semaine que je cherche la solution. Si quelqu'un à une idée, ce serai avec plaisir.

    Ci joint le source qui fonctionne avec le fichier :
    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
    // récupération de l'image 
    readWithTimeout(sock, pBuf, dwDataLen, 0); 
    char szFile[80]; 
    // creation du fichier 
    sprintf(szFile, "imagecyp.bmp", dwNumImgsRecv); 
    dwNumImgsRecv++; 
    int fh = open(szFile, _O_CREAT | _O_BINARY | _O_RDWR, _S_IREAD | _S_IWRITE); 
    if (fh != -1) 
    { 
    write(fh, pBuf, dwDataLen); 
    close(fh); 
    } 
    // Nouvelle image 
    if ( dwDataLen != 0 ) 
    { 
    Bmp1 =(HBITMAP)LoadImage(NULL,TEXT("imagecyp.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE); 
    CStatic_Ecran.SetBitmap(Bmp2); 
    CStatic_Ecran.ShowWindow(SW_SHOW); 
    delete pBuf; 
    }
    J'ai tenté avec l'instruction :
    Bmp1 =(HBITMAP)LoadImage(NULL,MAKEINTRESOURCE(pBuf), IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION);

    Mais sans succès.

    Merci par avance.
    Porschemini

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 533
    Points : 6 709
    Points
    6 709
    Par défaut
    Bonjour,

    quand vous donnez des sources sur plusieurs lignes merci de les mettre entre des balises 'code' (bouton #)

    votre programme est vraiment bizarre :
    • sprintf(szFile, "imagecyp.bmp", dwNumImgsRecv) ne fait que recopier la chaine fixe "imagecyp.bmp" dans szFile, ce dernier ne sert donc à rien, sans doute manque-t-il un %d ou %u ?
    • pourquoi ouvrir le fichier en lecture/écriture puisque vous ne faites qu'écrire dedans ?
    • le test if ( dwDataLen != 0 ) aurait plutôt du être avant l'écriture du fichier

    avec à partir de LoadImage j'ai fini par tombé sur SetBitmapBits
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/07/2012, 15h51
  2. [Débutant] Rien ne s'affiche dans ma pictureBox
    Par Whombat dans le forum VB.NET
    Réponses: 9
    Dernier message: 18/11/2011, 11h40
  3. Comment afficher dans un picturebox?
    Par michel perraut dans le forum VB.NET
    Réponses: 7
    Dernier message: 29/03/2008, 19h07
  4. récuperer une valeur et l'afficher dans un input
    Par popy29 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/12/2005, 16h49
  5. VB6] imprimer le texte afficher dans une picturebox
    Par Persons dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/08/2004, 11h15

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